You have to use a separate Worker. Pages Functions can only handle HTTP events, not Queues
You have to use a separate Worker. Pages Functions can only handle HTTP events, not Queues
Queue send failed: Queue is overloaded. Please back off. for the first time. Does that only happen when the max per-queue message throughput is exceeded? (ie currently 400/s)

Too Many Requests when you hit the rate limit. Did you exceed your backlog in a single queue?Queue send failed: Queue is overloaded. Please back off. was received from workers all over the world at around the same time (calling .send on a queue). .send and the queue storage?.send would only fail when exceeding the msg/s limits (globally) or some truly edge case node failure where it couldn't even save to any sort of recoverable internal storage.



add() is not a method on a Queue. Where are you seeing this? add() is not mentioned in the tutorial. send() is what you want to call. 



Pull consumers are designed to use a "short polling" approach, this means that the API from CloudFlare will respond immediately with any messages that are available, or an empty response if there are no messages available, this is different from SQS will wait an amount of time before responding with an empty response.). is that something that http pull would benefit from here? or are you of the opinion that fast-response > quantity of requests is more important.Queue send failed: Queue is overloaded. Please back off.Queue send failed: Queue is overloaded. Please back off.Too Many Requests.send.send.send➜ curl "https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/queues/${QUEUE_ID}/messages/pull" -X POST --data '{}' \
-H "Authorization: Bearer ${QUEUES_TOKEN}" \
-H "Content-Type:application/json"add()add()send() Pull consumers are designed to use a "short polling" approach, this means that the API from CloudFlare will respond immediately with any messages that are available, or an empty response if there are no messages available, this is different from SQS will wait an amount of time before responding with an empty response.for (const msg of batch.messages) {// Delay a singular message by 600 seconds (10 minutes)
await env.YOUR_QUEUE.send(message, { delaySeconds: 600 })export default {
async queue(batch: MessageBatch, env: Env, ctx: ExecutionContext) {
for (const msg of batch.messages) {
// Mark for retry and delay a singular message
// by 3600 seconds (1 hour)
msg.retry({delaySeconds: 3600})
}
},
};