我有一些代碼,我正在考慮將其放入Azure函數中,並且我有一個關於內存限制以及函數如何擴展的問題/關注。Azure函數 - 縮放和內存限制
在高端,應用程序可以使用大約800 MB的內存進行單次執行,因此如果我可以使用的最大內存量爲1536mb,那麼我只能執行1個併發執行操作,而不會耗盡內存。
我的理解是,最多可以有10個實例,帶有x個併發執行,但是如果最大容量只允許我在沒有超時的情況下運行執行,這是否意味着我需要手動設置最大併發執行次數爲1,並且它會自動擴展到最多10個實例,這意味着我一次只能執行10次全局執行?
如果是這樣,那是一種令人失望的行爲,因爲我期望大多數執行的內存要比這少得多。
這是一個文件操作函數,所以我可以根據輸入文件的大小準確地猜測使用了多少內存,所以如果我根據輸入大小調整後端以填充各種隊列,我可以有一個高端隊列(每個實例一次只允許執行一次),然後將其劃分爲其他大小的隊列,並手動調整最大併發實例,並使用針對其相關隊列的特定功能。
例如1隊列中的任何文件少於1MB,儘可能多的執行= 1個不受限制的函數。
1個隊列爲1mb-10mb輸入文件,限於20個併發執行。 等
感覺就像應該做更多的工作,但它並沒有太多的痛苦。
這似乎是一個明智的做法,還是有一種更簡單的方法?
您究竟如何限制併發執行次數?