Сообщение помещают в очередь задержки без consumers, задают message TTL и DLX на рабочий exchange. После истечения TTL оно направляется в рабочую очередь, где его получает обработчик.
Как спроектировать систему отложенных задач (Delayed Messages) в RabbitMQ с помощью TTL и DLX?
Сообщение помещают в очередь задержки без 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.