2014-02-10 3 views
0

Давайте скажем, что мой потребитель, вызванный какой-то странной причиной, плохо справился с этим сообщением. Есть ли техническая информация для повторного сообщения? Требования:
1. такой же заказ.
2. продолжать получать новые сообщения и размещать их последними в очереди?RabbitMQ - Есть ли способ вернуться к старым сообщениям в очереди

поэтому, не переустанавливать их (порядок беспорядка), что-то вроде перемещения индекса назад (как в кафке)? Спасибо.

ответ

0

1 - Тот же порядок - это то, что несовместимо с асинхронной моделью AMQP.

В общем сообщении RabbitMQ подаются, чтобы они были добавлены, но если произошла пересылка, сообщение будет доставлено как можно скорее. Кроме того, если одно сообщение не было отмечено среди других, оно также будет запланировано для клиента ASAP.

2 -Dead lettering может вам помочь.

Уверен, вы можете вручную добавить сообщение обратно для обмена, изначально оно было опубликовано, но это не то, что можно назвать лучшей практикой (хорошо, в некоторых случаях это работает и довольно хорошо). Но вы должны защитить свое приложение от циклических сообщений, которые терпят неудачу, а затем доставлены снова (по крайней мере, для меня это проблема решена).