在我的系统中 LockDuration = 5 分钟,AutoRenewTimeout = 20 分钟。处理某些消息需要超过 5 分钟(有时 5:15,有时超过 6:00)。对于这些消息,我有一个例外:
"The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue."
我在我们的日志中读到,系统开始处理一条消息(我们称之为 Process_A),它仍在进行中,5 分钟后,系统再次开始处理同一条消息(我们称之为 Process_B)。Process_A 完成并调用 Complete()。然后 Process_B 完成工作并调用 Complete()。它会导致异常,因为此消息已被编译。
我在文档中发现 LockDuration 的最大值是 5 分钟。为什么?超过 5 分钟的消息无法处理?或者可能配置错误?