.net Azure服务总线-续订锁工作不正常

.net Azure服务总线-续订锁工作不正常,.net,azureservicebus,.net,Azureservicebus,有时锁不会自动更新。如果我做错了,请告诉我。 我正在使用Microsoft.Azure.ServiceBus库v3.4.0,下面是我的代码片段 var client=new QueueClientconnectionString,queueName,ReceiveMode.PeekLock; client.RegisterMessageHandlerasync消息,令牌=> { var记录器=新AzureLogger; logger.Debug--------------------------

有时锁不会自动更新。如果我做错了,请告诉我。 我正在使用Microsoft.Azure.ServiceBus库v3.4.0,下面是我的代码片段

var client=new QueueClientconnectionString,queueName,ReceiveMode.PeekLock; client.RegisterMessageHandlerasync消息,令牌=> { var记录器=新AzureLogger; logger.Debug-----------------------------------; 已收到logger.DebugMessage。; var body=Encoding.UTF8.GetStringmessage.body; Debug$消息:{body}; 尝试 {
对于int i=1;i锁更新不是一个保证的操作。它是一个客户端操作/请求,当失败时,将无法扩展锁。依赖此功能时,必须记住这一点。

锁更新不是一个保证的操作。它是一个客户端操作/请求,当失败时,将无法扩展锁锁定。依赖此功能时,您必须记住这一点。

只有在服务总线消息上的锁定未过期之前,才能续订服务总线消息上的锁定。如果消息上的锁定已过期,即使在触发锁定续订之前,也会引发异常,这将无法保证所有消息上的锁定都已过期如@Sean Feldman所述,这些信息将被更新

如果对锁定的邮件执行的操作花费的时间超过了邮件的锁定持续时间,则您将获得提供的锁定无效或过期。当您尝试完成或死信邮件时,出现异常


另一个建议是,MaxAutoRenewDuration应与消息的锁定持续时间同步。

服务总线消息上的锁定只能在服务总线消息上的锁定未过期之前续订。如果消息上的锁定已过期,甚至在触发锁定续订之前,则会出现异常sed,它不能保证所有消息的锁都会像@Sean Feldman提到的那样被更新

如果对锁定的邮件执行的操作花费的时间超过了邮件的锁定持续时间,则您将获得提供的锁定无效或过期。当您尝试完成或死信邮件时,出现异常


还有一个建议是,您的MaxAutoRenewDuration应该与消息的锁定持续时间同步。

由此看来,它可能是由时钟漂移引起的。由此看来,它可能是由时钟漂移引起的。运行长时间运行的进程而不出现此类错误的最佳方法是什么?我的建议是不要依赖该功能并重新启动设计如何实现长时间处理。以下是如何实现这一点的想法。请注意,这不是唯一的选择或最好的选择。您需要找出什么更适合您的情况。运行长时间运行的流程而不出现此类错误的最佳方法是什么?我的建议是不要依赖该功能并重新设计如何实现e长处理已实现。以下是如何实现这一点的想法。请注意,这不是唯一的选择或最佳选择。您需要找出适合您的情况的更好方法。当处理时间超过5分钟时,MaxAutoRenewDuration无法与MaxLockDuration同步。MaxAutoRenewDuration无法与MaxLoc同步K处理时间超过5分钟时的持续时间。