![](/img/trans.png)
[英]Message is stuck at azure service Bus. How to retrigger delivery of message?
[英]How to renew Service Bus message from Azure Function?
我按照Microsoft 的文檔進行設置(使用 c#),但由於服務總線隊列的鎖定持續時間,消息將過期。
isSessionsEnabled
為false,我在host.json中的設置如下,供參考:
{
"version": "2.0",
"functionTimeout": "00:10:00",
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 32,
// tried "00:00:55", "00:02:30", "00:05:00"
"maxAutoRenewDuration": "00:10:00"
}
}
}
}
我還嘗試不在host.json
中實現extensions
(從文檔中可以自動更新鎖)但仍然不起作用。
作為參考,發現這個提到微軟的文檔可能有問題但沒有提到可能的解決方案。
由function運行時控制,無需手動更新鎖。Function可以自行更新消息鎖。
如果您已將isSessionsEnabled
設置為true
,則sessionHandlerOptions
將受到尊重。 由於您已將isSessionsEnabled
設置為false
,因此messageHandlerOptions
將受到尊重。
當 Functions 運行時以窺視鎖定模式接收消息時,一旦 function 成功完成,它就會對消息調用
Complete
,如果 function 失敗,則會調用Abandon
。 如果 function 運行時間超過PeekLock
超時時間,只要 function 正在運行,鎖就會自動更新。
maxAutoRenewDuration
可在host.json中配置,映射到OnMessageOptions.MaxAutoRenewDuration
根據文檔,最大允許時間為 5 分鍾,而您可以將函數運行時間限制從默認的 5 分鍾增加到 10 分鍾。 對於服務總線功能,您不希望這樣做,因為您會超出服務總線續訂限制。
請參閱此以獲取有關消息過期的更多信息。
你能分享你的函數的簽名嗎? 我相信 maxAutoRenewDuration 僅適用於接收單個消息的函數,即不適用於接收消息數組/列表的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.