Как правильно повторно выполнять неудачные задачи?

Есть модуль который добавляет магазин, далее Rabbit вставляет в очередь задачу на получения информации об этом магазине с внешнего сайта. Может быть такое, что внешний сайт временно отключен (на обновление или ещё по каким-то причинам), в этом случае задача не будет выполнена.
Как правильно сделать так, чтобы задача всё же выполнилась, когда сайт снова будет доступен?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@yarkin
RabbitMQ вряд ли может знать, когда какой-то внешний сайт становится доступным, самый простой вариант здесь - подождать и попробовать ещё раз.
Силами RabbitMQ это можно сделать с помощью расширения Dead Letter Exchanges:
* На основную очередь - Q1 - вешается политика/устанавливается опция dead-letter-exchange=Q2
* На Q2 вешается политика/опция dead-letter-exchange=Q1 + message-ttl=<время между повторами>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы