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

在Web作业中使用ServiceBus时续订锁sdk

金嘉言
2023-03-14

我使用Azure web作业sdk以便处理消息。ServiceBus用于消息传递。

ServiceBus消息中的最大锁定时间为5分钟,但我有一些长时间运行的任务需要更多时间。在这种情况下,我应该调用BrokeredMessage。不幸的是,RenewLock看起来我没有从web作业触发器访问BrokeredMessage(我只获取消息内容)。

有人知道如何RnewLock在Web作业触发器?

共有1个答案

习海
2023-03-14

在幕后,我们使用MessageRecector。OnMessageAsync在PeekLock模式做自动续订。这些由OnMessageOptions管理。AutoRenewTimeout值,根据需要增加。对于JobHost,您可以通过ServiceBusConfiguration设置它来覆盖默认的OnMessageOptions。OnMessageOptions,然后可以将其传递到配置中。主机启动时使用ServiceBus()。对于这些新选项,您应该使用最新的v1.1.0包,该包目前处于预发布(rc1)状态,但将在本周内进行RTM。

这个问题在SDK回购中有更详细的讨论。建议通读一遍。最新版本还为ServiceBus添加了一系列扩展点,可用于覆盖消息的处理方式。请参阅发行说明中的“ServiceBus消息传递改进”。

 类似资料:
  • 目前,我正在使用Azure服务总线会话队列,将30秒配置为锁定持续时间。 例如,我有一个会话包含3条消息 > 虽然处理第一条消息需要更多的时间,之后我调用CompleteAsync()从队列中删除消息。但是每当我执行CompleteAsync()时,我都会得到SessionLockLostExcure。 每当锁过期时,我想更新锁。 我按照这个留档,但我没有得到任何样本续订锁令牌。

  • 我在两个不同的XMLS中定义了两个作业。比如工作A和工作B,我需要在成功完成工作A时打电话给工作B,做这件事最好的方法是什么。我对spring-batch相当陌生,因此正在寻找处理此问题的最佳方法。

  • 我在Azure服务总线中构建了一个支持多队列订阅的服务,但是我正在得到一些奇怪的行为。 我的subscription singleton类有一个如下所示的方法: 其思想是,您为特定类型的消息订阅Azure Service Bus,该消息直接对应于队列。在订阅中,传入一个委托以了解如何处理消息。 谁能告诉我,我需要做什么不同的,以确保消费者拥有的消息,直到完成?

  • 我想建立一个单一的Spring Boot应用程序,同时做多种不同的任务。我在互联网上做了研究,但我找不到任何出路。我来详细说说。我希望每隔一段时间启动一次作业,例如一天一次。我可以用Spring石英来做。我也想在一个专用的互联网地址上听信息。消息将来自Apache Kafka平台。因此,我想将Kafka集成用于Spring框架。它实际上是否适用(始终监听消息并按时执行计划的作业)

  • 我正在开发一个Azure逻辑应用,其中有一个服务总线窥视锁触发器。服务总线的消息锁定持续时间为5分钟。我希望每5分钟有一个自动更新令牌机制,以防逻辑应用实例需要超过5分钟,以便该过程可以继续,而无需释放锁,让另一个消费者将消息带走。 有什么方法可以通过Logic应用程序实现这一点吗?

  • 我已将 PnP 合作伙伴包的示例部署到 Azure 存储,并创建了两个 Web 作业。一个计划,另一个连续。 我通过UI“创建网站集页面”创建了几个网站集,当我在配置网站集中检查PnPProvisioningJobs库时,作业状态显示为“挂起”。然而,WebJob状态显示为“正在运行”。 JSON 设置文件包含以下设置: 任何想法我如何配置它连续运行,因为现在显然没有这样做。 计划的Web作业有以