Queue stuck until manual Send Message from Cloudflare Dashboard

Recently, my queue frequently stuck. This is the producer code (never changed since forever):
router
.post('/nudge/jobs', async (req: Request, env: Env, _ctx: ExecutionContext) => {
// The content is not important, as it's just a trigger
for (let i = 0; i < 3; i++) {
await env.JOB_KICKSTART.send({}, { delaySeconds: 0 });
}

return new Response('OK');
})
.all('*', () => new Response('Not found', { status: 404 }));
router
.post('/nudge/jobs', async (req: Request, env: Env, _ctx: ExecutionContext) => {
// The content is not important, as it's just a trigger
for (let i = 0; i < 3; i++) {
await env.JOB_KICKSTART.send({}, { delaySeconds: 0 });
}

return new Response('OK');
})
.all('*', () => new Response('Not found', { status: 404 }));
This is the consumer:
export default {
async queue(_: any, env: Env, ctx: ExecutionContext) {
await process(env, ctx);
},
...router
};

async function process(env: Env, ctx: ExecutionContext): Promise<Response | void> {
const sql = postgres(env.DB.connectionString);
const logger = getLogger(ctx, env.LOG_TAIL_TOKEN);

let remaining = await count(sql);
...
}
export default {
async queue(_: any, env: Env, ctx: ExecutionContext) {
await process(env, ctx);
},
...router
};

async function process(env: Env, ctx: ExecutionContext): Promise<Response | void> {
const sql = postgres(env.DB.connectionString);
const logger = getLogger(ctx, env.LOG_TAIL_TOKEN);

let remaining = await count(sql);
...
}
The only way to trigger the queue is by sending a dummy message from Cloudflare Dashboard (screenshot attached). What has changed in Cloudflare Queues?
No description
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?