Azure服务总线重试延迟

Azure服务总线重试延迟,azure,queue,servicebus,Azure,Queue,Servicebus,我正在使用Microsoft Azure ServiceBus对队列消息进行排队,并使用WCF对订阅进行排队。我正在尝试实现重试逻辑。我使用Peak/Lock查看消息,然后必须对消息进行一些本地处理。如果处理失败,我将解锁消息,以便再次尝试处理它。问题是我需要在处理尝试之间建立一个延迟。当前,它被弹出回队列,然后几乎立即被处理。两次尝试之间需要大约2分钟。如果您在重新处理该特定队列的消息之前始终必须等待2分钟,您可以尝试将队列上的锁超时配置为2分钟(加上处理消息所需的时间),然后让锁过期,而不是

我正在使用Microsoft Azure ServiceBus对队列消息进行排队,并使用WCF对订阅进行排队。我正在尝试实现重试逻辑。我使用Peak/Lock查看消息,然后必须对消息进行一些本地处理。如果处理失败,我将解锁消息,以便再次尝试处理它。问题是我需要在处理尝试之间建立一个延迟。当前,它被弹出回队列,然后几乎立即被处理。两次尝试之间需要大约2分钟。

如果您在重新处理该特定队列的消息之前始终必须等待2分钟,您可以尝试将队列上的锁超时配置为2分钟(加上处理消息所需的时间),然后让锁过期,而不是解锁它。这样做的缺点是,您需要关注处理时间,并在需要时延长锁的超时时间


另一种选择是接收并完成邮件,将预定的交付时间设置为2分钟后,然后重新发送邮件。这样做的缺点是,您需要使用它并确认它,这涉及到某些风险(例如,在您有机会重新发送消息之前,您的进程已死亡)。

如果您在重新处理该特定队列的消息之前始终必须等待2分钟,您可以尝试将队列上的锁定超时配置为2分钟(加上处理消息所需的时间),然后让锁过期,而不是解锁。这样做的缺点是,您需要关注处理时间,并在需要时延长锁的超时时间

另一种选择是接收并完成邮件,设置未来2分钟的预定发送时间,然后重新发送邮件。这有一个缺点,即您需要使用并确认邮件,这涉及到某些风险(例如,您的进程在您有机会重新发送邮件之前死亡)。

"如果以Peek Lock模式从队列中偷看消息,则消息中没有接收上下文。您可以以Peek Lock模式接收消息,这将在为队列的“Lock duration”属性指定的时间间隔内锁定消息。锁定的消息在其锁定到期之前无法接收。因此,通过设置Lock dur延长2分钟,并在Peek Lock模式下接收消息将解决此问题

您可以编写自定义代码来更新Lock Duration属性。Service Bus Explorer、Serverless360等工具提供了使用图形用户界面更新属性的选项。“

”如果以Peek Lock模式从队列中偷看消息,则消息中没有接收上下文。您可以以Peek Lock模式接收消息,这将在为队列的“Lock duration”属性指定的时间间隔内锁定消息。锁定的消息在其锁定到期之前无法接收。因此,通过设置Lock dur延长2分钟,并在Peek Lock模式下接收消息将解决此问题

您可以编写自定义代码来更新锁定持续时间属性。Service Bus Explorer、Serverless360等工具提供了使用图形用户界面更新属性的选项。“