2017-07-11 23 views
0

在消費計劃下託管Azure功能時,如何應用存儲隊列輪詢的概念?自定義存儲輪詢與消費計劃Azure函數相關嗎?

我使用經典的託管WebJob函數得到了投票的主體,我知道1分鐘的最大輪詢間隔可以被覆蓋。但是在消費計劃託管的情況下,沒有應用程序級別的內存駐留進程,因此我假設Azure內部通過超出我的控制範圍的其他觸發器啓動FunctionApp。

此問題的動機是我試圖瞭解Azure託管的Web應用程序向存儲隊列添加消息時的典型E2E函數調用傳播延遲。在我的情況下,WebApp,StorageQueue和預編譯的函數DLL將運行在相同的Azure區域中。

我需要將Azure函數調用延遲限制在10秒以下,平均值爲< 3秒。

回答

1

不幸的是,對於當前輪詢模型的消費計劃,這是不可能的,因爲我們每10秒輪詢觸發資源以確定是否有新事件需要加載/啓動功能實例。

如果您的函數應用程序運行頻率足夠高以至於它總是有活動實例(例如,每5分鐘一個新的隊列消息),您可以獲得所需的調用延遲,因爲實例本身會處理輪詢。

最壞的情況(沒有函數實例正在運行)是〜10s輪詢+〜5s實例啓動時間來處理新事件。

+0

感謝您的澄清,鑑於您所說的我會重新考慮並可能在AppService中託管我的功能。 – camelCase

+0

針對.Net Core的5秒鐘功能應用程序啓動時間會減少嗎?我問,因爲我記得一個Microsoft Build會議演示,提到.Net Core進程的300ms啓動時間。 – camelCase

+1

是的,我們正在積極努力減少冷啓動時間 - 轉向.Net Core應該有助於實現這一點。 –