more importantly it doesn't work for receiving the messages via the same queue
more importantly it doesn't work for receiving the messages via the same queue
queue handler (your consumer) accept a type parameter - so async queue<T>(batch: MessageBatch, env: Env) - which will mean that each message in MessageBatch has a typed payload based on your type parameter T
Error: Queue send failed: Internal Server Error06:22:09, but seems like essentially all sends failed (these are after client-side retries) during that time - worker connection to the rest of cf was ok (I was able to fallback to saving msgs to DO for later playback)queue definition:producer:consumer:attempts property on a Message? https://developers.cloudflare.com/queues/configuration/javascript-apis/max_retries configuration setting in wrangler.toml?



queueasync queue<T>(batch: MessageBatch, env: Env)MessageBatchTmax_retries = 10,
retry_delay = 30Error: Queue send failed: Internal Server Error06:22:09queue definition[[queues.producers]]
queue = "queue"
binding = "QUEUE"
[[queues.consumers]]
queue = "queue"
max_batch_size = 25
max_batch_timeout = 30
max_concurrency = 1producerlet delaySeconds = 0
while (slackUsers.length) {
console.log(delaySeconds)
await triggerMessageQueue.sendBatch(
slackUsers.splice(0, 25).map(({ id, dmChannel }) => ({
body: {
slackUserId: id,
slackUserDmChannel: dmChannel,
awarenessMessageId
}
})),
{ delaySeconds: delaySeconds }
)
delaySeconds += 30
}consumerexport const triggerMessageQueueConsumer = async (
batch: MessageBatch<QueueMessage>,
env: QueueEnv
) => {
console.log(`${new Date().toISOString()} Executing batch...`)
console.log(`Received ${batch.messages.length}`)
for (const message of batch.messages) {
console.log(message.timestamp, message.attempts)
message.ack()
}
}attemptsMessagemax_retriesawait env.queue.send(
data,
{ delaySeconds: 42300, contentType: "json" }
).then(() => console.log("done"));