【发布时间】:2014-06-03 05:03:09
【问题描述】:
我正在使用 RabbitMQ,并且我有一个保存电子邮件消息的队列。我的消费者服务使消息出队并尝试发送它们。如果出于任何原因,我的消费者无法发送消息,我想将消息重新排队以再次发送。我意识到我可以做一个 basicNack 并将 requeue 标志设置为 true,但是,我不想无限期地重新排队消息(例如,如果我们的电子邮件系统出现故障,我不想不断地重新排队未发送的消息)。我想定义一个有限的次数,我可以将消息重新排队以再次发送。但是,当我将其出列并发送 nack 时,我无法在电子邮件对象上设置字段。队列中的消息上不存在更新的字段。还有其他方法可以解决这个问题吗?提前致谢。
【问题讨论】:
-
这篇博文很好地解释了为什么要在 .net 的 RabbitMQ 之上使用 NServiceBus 或 MassTransit 等框架来解决这类问题:make-awesome.com/2017/12/sure-you-can-just-use-rabbitmq
-
@UdiDahan 在 Java 世界中是否有相当于 MassTransit/NServiceBus 的东西?
-
@Datz 我认为最接近的应该是 Apache Caml。
-
@Datz - 如果仍然相关,对于 JAVA,请参阅:github.com/spring-cloud/spring-cloud-stream-binder-rabbit
标签: .net queue rabbitmq consumer