我正在使用 Windows azure 服务总线进行消息传递。我们创建了 web api 来从服务总线中提取消息。移动应用程序正在使用此 Web api 来获取消息。我们在订阅客户端使用 PeekLock 模式,锁定时间为 5 分钟。
在客户端,如果消息处理时间超过 5 分钟,则消息将解锁。所以在解锁之前我们要更新锁。所以我们创建了另一个 web api 来更新锁。在 web api 中,我们传递 LockToken。但是当我们使用 subscriptionClient.RenewMessageLockAsync(new Guid(lockToken)) 时,它会在锁定过期时间之前抛出错误“提供的锁定无效。锁定已过期,或者消息已从队列中删除”。我们在消息 LockUntilUtc 时间的 1.5 分钟之前启动更新锁。
我的问题是我们可以在到期前更新消息锁吗?如果是,那么为什么 azure service bus throwing lock expired 错误?请帮我理解这个更新锁的事情。