RabbitMQ重新发送被拒绝的重新排队邮件的退款?

时间:2016-01-02 09:28:04

标签: rabbitmq

我有一个简单的服务,它订阅来自RabbitMQ的消息并将它们写到数据存储区。有时,此数据存储在一段短时间内(有时是秒,但有时是几分钟)不可用。如果发生这种情况,我们会对失败的邮件执行basic.reject,并将requeue设置为true。虽然这有效但消息似乎立即重新传递。我希望RabbitMQ优雅地退回重新发送。例如,首先尝试重新“立即”然后在2,3,5,8,13秒之后再重新使用等等。这是可能的,如果是这样的话?

1 个答案:

答案 0 :(得分:2)

除了Louis F.发表的评论之外,请查看延迟消息交换插件https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/

您可以使用延迟消息交换类型设置死信交换,并且无需进行大量配置即可轻松完成此操作,并使用此类TTL。