我使用的是rabbitMQ,我使用basic_get接收队列中的每条消息,而无需自动加标过程,这意味着消息将一直保持在队列中,直到我对消息进行攻击或nack。
有时,由于抛出一些异常,无法处理消息,从而阻止了它们的完全处理。
在这些情况下,我想再试一次,让我们立即说两次,如果结果仍然不能处理它们--我想在一小时内再试3次,如果所有的尝试都失败了,那么我想将消息插入并永久地从队列中删除。
问题是,rabbitMQ中是否有任何机制为我提供消息重试(也包括重试次数),以及选择何时启动重试的能力-某种推迟机制?
发布于 2015-03-01 12:16:49
为此,您应该使用多个队列。
我也遇到了类似的问题,我处理这个问题的方法是将遇到问题的消息转移到另一个队列中。
如果您抛出了异常,然后捕获它,将消息保存并移动到error_queue_1中,您可以设置第二个监听器(带有不同的计时器),它将处理error_queue_1。
你可以重复这个过程很多次,因为你觉得它是必要的。
这还可以让您知道有多少消息有问题,哪一个,等等。
https://stackoverflow.com/questions/28793354
复制相似问题