Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про RabbitMQ: retry, ttl

Настраивали ли ретраи сообщений в очередях (попытки/задержки)?

Вопрос проверяет, понимаете ли вы, как реализуются повторные попытки обработки сообщений и задержки между ними.

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

Да, ретраи в очередях обычно настраиваются через комбинацию TTL и DLX. Сообщение при ошибке отправляется в очередь с задержкой, а после истечения TTL возвращается обратно в основную очередь. Так можно реализовать несколько попыток с паузами. Количество попыток обычно контролируют через заголовки сообщения.

Длинный ответ

RabbitMQ не имеет “встроенных” ретраев, но они легко реализуются на уровне архитектуры очередей.

Определение

Определение: Retry — это повторная доставка сообщения после неудачной обработки, часто с задержкой между попытками.

Базовая схема ретраев

Перед разбором важно понимать, что ретраи почти всегда строятся через DLX.

Типовая логика:

  1. сообщение не обработалось

  2. consumer отклоняет сообщение

  3. сообщение уходит в retry-очередь

  4. после TTL возвращается в основную очередь

Реализация задержки

  • создаётся retry-очередь

  • у неё задан TTL (например, 30 секунд)

  • у неё указан DLX, ведущий обратно в основную очередь

Контроль количества попыток

Обычно используют заголовок, например x-retry-count:

$retries = $message->get('x-retry-count', 0);

if ($retries >= 3) {
    // отправить в DLQ
}

Практические сценарии

  • временная недоступность внешнего API

  • блокировки в БД

  • кратковременные сетевые ошибки

Краткий вывод

Ретраи с задержкой — обязательная практика для устойчивых очередей, и в RabbitMQ они чаще всего реализуются через TTL + DLX.

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • RabbitMQ

    RabbitMQ

Ключевые слова

#retry

#ttl

Подпишись на PHP Developer в телеграм

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.