Как спроектировать систему отложенных задач (Delayed Messages) в RabbitMQ с помощью TTL и DLX?

Сообщение помещают в очередь задержки без consumers, задают message TTL и DLX на рабочий exchange. После истечения TTL оно направляется в рабочую очередь, где его получает обработчик.

Короткий ответ

Что ответить на собеседовании

Сообщение помещают в очередь задержки без consumers, задают message TTL и DLX на рабочий exchange. После истечения TTL оно направляется в рабочую очередь, где его получает обработчик.

Подробный разбор

Ответ с пояснениями

Сообщение помещают в очередь задержки без consumers, задают message TTL и DLX на рабочий exchange. После истечения TTL оно направляется в рабочую очередь, где его получает обработчик.

Для фиксированных интервалов используют отдельные delay-очереди. Разные TTL в одной очереди могут давать head-of-line задержку: истёкшее сообщение ждёт продвижения к голове. Это не точный календарный планировщик. Не путайте TTL сообщения с x-expires, удаляющим неиспользуемую очередь. Проверяют маршрутизацию, долговечность и гарантии dead-lettering выбранного типа очереди; по умолчанию перенос не всегда защищён от потери. Обработчик выдерживает повторы и проверяет фактическое время запуска.

Источник: www.rabbitmq.com, www.rabbitmq.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее