Согласно документации Dramatiq, все сообщения о сбоях (после повторных попыток) отправляются в обмен мертвыми буквами:
После того, как сообщение превысило ограничения на повтор или возраст, оно перемещается в очередь недоставленных сообщений, где оно хранится до 7 дней, а затем автоматически удаляется из брокера сообщений. Отсюда вы можете вручную проверить сообщение и решить, стоит ли его возвращать в очередь. https://dramatiq.io/guide.html#dead -буквы
Но не существует документированного способа объявить об обмене мертвыми буквами. Внутри RabbitMQ-брокера Dramatiq я вижу следующий код:
def _build_queue_arguments(self, queue_name):
arguments = {
"x-dead-letter-exchange": "",
"x-dead-letter-routing-key": xq_name(queue_name),
}
if self.max_priority:
arguments["x-max-priority"] = self.max_priority
return arguments
Источник
Значение для обмена мертвыми буквами пустое, так как мы можем программно настроить DLX, когда политики не используются?
Мой пример использования: После того, как все повторные попытки и ограничения по времени были превышены, я хочу прочитать сообщения из DLX для дальнейшей обработки.