如何使用rhea在amqp中实现天蓝色服务总线的重新传递延迟

问题描述 投票:0回答:1

我在nodejs应用程序中使用rhea使用AMQP在Azure Service Bus上发送消息。我的问题如下:

有时,由于某些事情不在我们手中,消息处理尝试可能会失败。例如,对某个API的调用可能会失败,因为服务已关闭。此时,我们解锁消息,以便以后或其他实例获取消息。经过一定的重试次数(当交付次数达到一定的最大值时),它最终会在DLQ中结束。

我想要实现的是,在每次交付尝试之间存在越来越多的停顿,因此X重试次数不会快速连续发生,直到达到最大值。这样,如果只是等待一些服务再次可用,我可以给出导致失败的一些时间来恢复。如果这不起作用,则无论如何消息都可以转到DLQ。

在azure服务总线中是否有一些设置可以实现这一点,还是我必须将其编程到我自己的应用程序中?

amqp azureservicebus rhea
1个回答
0
投票

如果您明确要延迟处理,则可以使用ScheduledEnqueueTime设置稍后传递的新消息(使用message.Clone()函数来帮助创建克隆消息)。您还可以调用message.Defer(),并且在稍后为该特定消息调用Receive(Sequenceid)之前不会再次传递此消息。

© www.soinside.com 2019 - 2024. All rights reserved.