当前位置: 首页 > 知识库问答 >
问题:

Azure服务总线重试延迟

都浩淼
2023-03-14

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

共有2个答案

都阳
2023-03-14

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

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

孟茂学
2023-03-14

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

另一种选择可能是接收并完成消息,将预定的传递时间设置为未来2分钟,然后重新发送消息。这有一个缺点,即您需要使用它并获取它,这涉及到某些风险(例如,您的进程在您有机会重新发送消息之前就会死亡)。

 类似资料:
  • 我对azure资源有问题。我有一个资源组,有两个web应用,一个是WebApp Api,第二个是service bus的WebApp。 直到昨天,我才意识到这个问题的存在。事件的动态如下。 在一些特定的场景中,当我更新我的应用程序接口(只有应用程序接口)时,我运行了一个新版本,它部署了新内容并重启了网络应用程序(在这种情况下,管道的目标是应用程序接口和服务),但是昨天我意识到如果我更新了应用程序接

  • 我一直在尝试创建一个客户端来连接我的Azure服务总线队列。我一直在参考此文档: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#send-消息到队列。 我的代码: 在创建客户端时,我遇到以下错误: 通用域名格式。微软蔚蓝色的服务总线。原语。Service

  • 我正在寻找一种解决方案,用于在几个本地数据库之间进行实时数据集成。没有太多的数据转换。我正在评估各种可用的ESB。我认为使用Azure服务总线进行数据集成可以快速开发解决方案。建议使用Azure service bus集成所有内部数据库吗?

  • 我使用此url中的示例http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/.我有两个问题: 1、ACS或SAS 连接URL, 用户名和密码来自ACS身份验证,但Azure服务总线已将其身份验证从ACS更改为SAS。它是否也支持SAS身份验证?就像用户名是SA

  • 我已经创建了一个Azure webwork,它将向服务总线队列发送强类型消息,并成功发送。 我想创建另一个webjob,只要servicebus队列中有消息,就会触发该webjob。请在下面找到我正在尝试的代码。出于某种原因,尽管servicebus队列中有消息,但当我在本地运行webjob时,webjob未被触发并出现错误。 错误: 代码: 有谁能帮我解决这个问题吗? 谢谢

  • 来自第三次订阅的消息会发生什么情况,是否会在TTL之后发送到死信队列 有没有办法找出消息未被使用的订阅