当消费者抛出异常时,MassTransit 为另一个消费者重新发布消息

MassTransit republish message for another consumer when a consumer throws exception

我正在使用 MassTransit 和 RabbitMQ 开发微服务系统。 一项服务可以向许多订阅者服务发布作业。 订阅者之一将执行作业(竞争消费者)。

如果一个订阅者使用消息、执行作业并抛出异常,是否有任何方法可以将消息重新传送到队列,以便其他订阅者可以使用该消息。

我对订阅者使用了重试策略,但它只允许我在同一个订阅者中重新使用消息,而不能被另一个订阅者使用。

您可以安排邮件的重新投递:

http://masstransit-project.com/MassTransit/usage/scheduling/redeliver.html

您需要有一个消息调度器,或者使用RabbitMQ 中的延迟交换。通常不鼓励立即重试,但您可以将重新传送计时器设置为您想要的任何值。