What plan are you on? Can you share your account ID? It must be a _paid_ plan.
What plan are you on? Can you share your account ID? It must be a paid plan.

sends, and then pick the batch off the queue and run my cleanup code at the end of the batch, but if multiple batches are executing concurrently I can’t guarantee that my cleanup code will begin after all of the other messages have finished executing. Just wondering if anyone has any ideas for architecture here, or if this is something that’s just not possible without tracking & polling flags for message status.Developers building on Queues can now create up to 10,000 queues per account, enabling easier per-user, per-job and sharding use-cases.
env["some-queue-" + userId].send(...)?
message.queue gives the name of the queue. I would like to avoid having to pass the queue names as additional variables (next to the bindings)MessageBatch type that contains the messages delivered to the consumer has the queue name: https://developers.cloudflare.com/queues/reference/javascript-apis/#messagebatch
if (msg.queue === env.SOME_QUEUE_BINDING.name) ...staging.some-queue.v1 ) and so on, but was wondering if we could derive the queue name from the binding directlyMessages delivered to a DLQ without an active consumer will persist for four (4) days before being deleted from the queue.

wrangler.toml, etc.
queue.getMessages() to return an array[] will helps us to find if a message already exists with retryqueue.getCount() to return the number of messages currently in queue to wait or move some tasks to other services.message.retryCount() to get if a message is already retried > 3 times to take actionackMessages(Array<ids>) you'd still have to store those IDs / run that operation somewhere, and the costs would be the same (read, delete) as consuming them. This isn't to say there isn't a way to make this more convenient, but it won't land this quarter async queue(batch: MessageBatch<Message>, env: Env): Promise<void> {
batch.ackAll();
for (const message of batch.messages) {
const task = message.body as unknown as Task;
// d1.insert(`Running task ${task.id}`);
// Heavy processing here may take upto 1 minute per batch
}
}