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

锁持续时间到期后如何续订锁?使用Azure服务总线会话队列

曾喜
2023-03-14

目前,我正在使用Azure服务总线会话队列,将30秒配置为锁定持续时间。

例如,我有一个会话包含3条消息

>

  • 虽然处理第一条消息需要更多的时间,之后我调用CompleteAsync()从队列中删除消息。但是每当我执行CompleteAsync()时,我都会得到SessionLockLostExcure。

    await session.CompleteAsync(message.SystemProperties.LockToken);
    

    每当锁过期时,我想更新锁。

    我按照这个留档,但我没有得到任何样本续订锁令牌。

  • 共有1个答案

    壤驷康裕
    2023-03-14

    每当锁过期时,我想更新锁。

    不可能。一旦锁定令牌已经过期,代理将考虑它解锁,并服务于其他消费者。相反,您应该检查您的配置和设计方法。如果您收到的消息可能需要更长的处理时间,请不要使用30秒的MaxLockDuration,请将其调高。如果5分钟不够,请查看在锁定时间到期前手动延长锁定时间,或者如果使用内置消息泵,请配置自动续订锁定的最长时间。

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

    • 我正在使用azure服务总线,我得到的锁已过期。 如何我已经实现了锁定1天,但我仍然得到错误 我的代码: 错误: ---日志记录错误---回溯(最近一次通话最后一次): 文件“/test/.env/lib64/python3.6/site packages/azure/servicebus/_servicebus_receiver.py”,第782行,在放弃消息self中_在第415行,用重试(消

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

    • 我一直在研究服务总线队列和主题的lockdurations和renewlock机制。然而,对于主题订阅,锁定持续时间到底意味着什么还不清楚。 例如: 这之后会怎么样?其他订阅者已收到此消息。当前订户正在处理消息。 在这种情况下锁定持续时间的意义是什么?

    • 对于我的项目,我必须读取在CSV文件中提供给我们的数据并以某种格式将其写出。我几乎完成了,但我遇到的问题是我的程序没有完全读取给定的时间。从这里开始,我的程序只是读取所有给定的时间。 我试图将<code>字符串时间。 这应该会回来 [芝麻街|埃尔莫之最1240:28:11] 但它返回 [Elmo的最佳|芝麻街124;2:29,1:30,2:09,1:46,1:55,2:02,1:42,2:40,1

    • 我怎么能看到它?在portal中,我发现了一个选项,可以看到会话计数,但不是持续时间。