![](/img/trans.png)
[英]Azure function service bus trigger set autocomplete from function level
[英]Azure function Service Bus Trigger concurrency
我正在開發 Azure Function,它在 Dynamics 365 CRM 中執行多個操作。 我不完全理解 Azure 函數並發是如何工作的。 我有一個消費計划,我的 Azure Function 里面有一個 function 由服務總線消息觸發。
當我第一次測試它時,服務總線收到大約 200 條消息,應用程序開始同時處理大量消息,向無法處理它們的 dynamics 365 發出大量請求。 因此,在 Azure 門戶中,我設法將最大實例數設置為 1,但 function 仍然一次處理許多消息。 對此設置限制的最佳方法是什么? 在 host.json 中使用 maxConcurrentCalls? 在 host.json 中使用 maxConcurrentSessions? 在應用配置中使用 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT?
此外,將 maxConcurrentCalls 設置為 10 和 1 個 function 實例或將其設置為 5 和 2 個 function 實例有什么區別?
maxConcurrentCalls是在host.json
中為 Azure 函數服務總線觸發器配置的屬性。
默認情況下,Functions 的運行時並發處理多條消息(默認值 - 16)。 將maxConcurrentCalls
設置為 1 以設置運行時一次僅處理單個隊列或主題消息。
此外, maxConcurrentCalls
是最大數量。 對每個縮放實例應啟動的回調的並發調用數。
maxConcurrentSessions - 每個擴展實例同時處理的最大會話數。
此設置僅適用於一次接收一條消息的函數。
對於每個實例一次只需要處理一條消息的要求,您可以在host.json
中使用上述配置。
如果你的需求是Singleton 支持Functions 保證一次只有一個 function 運行,那么你需要配置這個。
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
此設置沒有默認限制,它表示最大數量。 應用程序可以擴展到的實例數。
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
設置為 1maxConcurrentCalls
設置為 1。很少有參考資料以獲取更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.