INTEGRITY Документация

Dead Letter Queues

Dead Letter Queue (DLQ) представляет собой распространённое понятие в системах обмена сообщениями и обозначает место, куда отправляются сообщения при сбое доставки у потребителя после max_retries достигнут. Dead Letter Queue работает как обычная очередь: в неё можно отправлять сообщения и обрабатывать их независимо.

В Cloudflare Queues Dead Letter Queue задается в конфигурация потребителя. Сообщения доставляются в DLQ, когда для них исчерпан настроенный лимит повторных попыток потребителя. Если DLQ не настроена, сообщения, достигшие лимита повторных попыток, удаляются безвозвратно.

Например, следующая конфигурация потребителя будет отправлять сообщения в DLQ с именем "my-other-queue" после повторных попыток доставки (по умолчанию 3 раза):

{
	"queues": {
		"consumers": [
			{
				"queue": "my-queue",
				"dead_letter_queue": "my-other-queue"
			}
		]
	}
}
[[queues.consumers]]
queue = "my-queue"
dead_letter_queue = "my-other-queue"

Вы также можете настроить DLQ при создании потребителя из командной строки с помощью wrangler:

wrangler queues consumer add $QUEUE_NAME $SCRIPT_NAME --dead-letter-queue=$NAME_OF_OTHER_QUEUE

Чтобы обработать сообщения, попавшие в DLQ, необходимо настроить потребителя для этой очереди так же, как и для любой другой очереди.

Сообщения, доставленные в DLQ без активного потребителя, хранятся в течение четырёх (4) дней, после чего удаляются из очереди.