问题
I'm having issues with Azure Message Bus Queues.
I'm having MessageLockLostException
thrown and The request operation did not complete within the allotted timeout of 00:01:10. The time allotted to this operation may have been a portion of a longer timeout.
I've set my queue into ReceiveMode.PeekLock
.
I also check
if(message.LockedUntilUtc.Minute <= 1)
message.RenewLock();
Why would this happen, what's causing the lock to give out? I was reading somewhere from the point where you Receive you have 5 minutes by default. This process takes a little longer usually. I wanted to renew the lock but this isn't working too well.
回答1:
The LockDuration is property of the Queue. You typically set this when you create the Queue. This is Queue
level property and cannot be changed on a message base. What you've read, most probably is saying that this duration cannot be longer than 5 minutes. The default value is 1 Minute, that's why you face issues. And why you face it 70 seconds later - I assume the logic for checking this conditions is executed every 10 seconds.
So I suggest that you create or modify your Queue to set LockDuration property to 5 minutes. Then, while working RenewLock of your message when appropriate.
来源:https://stackoverflow.com/questions/15303711/windows-azure-messagelocklostexception