在我的系統LockDuration = 5分鐘,AutoRenewTimeout = 20分鐘。一些消息的處理時間超過5分鐘(有時候5:15,有時超過6:00)。 對於這些消息我有一個例外:Azure服務總線和長處理消息
"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分鐘的信息無法處理?或者mayby的配置是錯誤的?
我應該在代碼中這樣做嗎?是不是AutoRenewTimeout? – MichalO
你能分享一個'AutoRenewTimeout'的鏈接嗎?我無法找到這個屬性。 –
這是[OnMessageOptions](https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.servicebus.messaging.onmessageoptions?view=azureservicebus-4.0.0)類中的字段。 這是一個關於它的主題:http://stackoverflow.com/questions/36561227/azure-servicebus-autorenewtimeout – MichalO