C# 当消费者引发异常时,MassTransit为另一消费者重新发布消息
我正在使用MassTransit和RabbitMQ开发一个微服务系统。 一个服务可以将作业发布到多个订户服务。 其中一个订户将执行作业(竞争消费者) 如果一个订阅者使用一条消息,执行一个作业并抛出一个异常,是否有办法将消息重新传递到队列,以便其他订阅者可以使用该消息。C# 当消费者引发异常时,MassTransit为另一消费者重新发布消息,c#,rabbitmq,masstransit,C#,Rabbitmq,Masstransit,我正在使用MassTransit和RabbitMQ开发一个微服务系统。 一个服务可以将作业发布到多个订户服务。 其中一个订户将执行作业(竞争消费者) 如果一个订阅者使用一条消息,执行一个作业并抛出一个异常,是否有办法将消息重新传递到队列,以便其他订阅者可以使用该消息。 我对订阅服务器使用重试策略,但它只允许我在同一订阅服务器内重新使用邮件,而不允许另一订阅服务器使用邮件。您可以安排邮件的重新交付: 您需要有一个消息调度程序,或者在RabbitMQ中使用延迟交换。通常不鼓励立即重试,但您可以将重
我对订阅服务器使用重试策略,但它只允许我在同一订阅服务器内重新使用邮件,而不允许另一订阅服务器使用邮件。您可以安排邮件的重新交付:
您需要有一个消息调度程序,或者在RabbitMQ中使用延迟交换。通常不鼓励立即重试,但您可以将重新交付计时器设置为您想要的任何设置。我是否需要为Quartz执行任何其他设置?我使用了
cfg.UseMessageScheduler(新Uri(“rabbitmq://localhost/quartz"));在我的代码中使用Redeliver()方法,但它不起作用。未重新传递任何消息。您必须在节点上运行quartz计划程序。在相同的文档中查找如何托管它。我找不到这些文档。你有什么例子吗?我有一个时间表样本。它有一个指向MT.Quartz.Host的链接,您可以配置并运行该链接。计划持久性在app.config中定义。此页面描述了如何在没有持久性的情况下托管Quartz端点进程内。