Декларация Dramatiq и чтение из мертвого обмена сообщениями - PullRequest
0 голосов
/ 04 февраля 2020

Согласно документации 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 для дальнейшей обработки.

...