我遇到了啓動多個作業主機的Azure函數的一個奇怪問題。初始主機似乎啓動並且隨後的主機嘗試獲取單身鎖的錯誤。當我禁用其中一個作業並且出現錯誤消息「功能運行時無法啓動」時,這一點非常明顯。我注意到我的計時器觸發器每次執行配置時都會執行多次「0 */30 * * * *」,這讓我深入瞭解了這種情況。關於功能應用Azure函數多個作業主機
Pid 1 2017-04-25T13:30:06.680 Staging table updated successfully.
Pid 1 2017-04-25T13:30:06.680 Updating the base table from the staging table.
Pid 2 2017-04-25T13:30:06.680 Staging table updated successfully.
Pid 2 2017-04-25T13:30:06.680 Updating the base table from the staging table.
詳細說明:
- 天青功能的動態/消耗計劃下運行
- 從類別庫運行5層的功能(遵循這個指南 - https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/)
- 2功能從一個執行計時器,每隔30分鐘 「0 */30 * * * *」
- 1團塊觸發看的容器用於從上傳的IoT集線器
- - 1 EventHub觸發接收1在等待開發時間
禁用計時器觸發從物聯網中心事件(稀疏事件,因此在這裏沒有沉重負荷)
重現步驟:
- 站起來Azure的功能與動態規劃
- 在門戶網站創建Azure的功能(跑進問題不這樣做之前)
- 從部署VSTS的功能,使用WebDeploy從導向上述
- 確保功能試圖啓動
- 禁用的功能之一來強制重啓
- 錯誤信息開始顯示
日誌從功能拉:
Link to log file
我已經停止了Azure的功能應用服務,刪除鎖文件夾,看看是否有幫助收購它確實單鎖,但只要一個功能被啓用/禁用或者使用Web部署錯誤返回從VSTS推送。我重建了Azure函數幾次,結果仍然是一樣的。
我們正在試圖瞭解如何解決此問題,以便我們可以圍繞此方案創建監控流程。
編輯
即執行兩次被設定與功能如下(所有的功能看起來非常相似,這一點):
function.json
{
"scriptFile": "..\\bin\\IngestionFunctionClassLibrary.dll",
"entryPoint": "IngestionFunctionClassLibrary.Functions.AnalyticsUpdate.Run",
"bindings": [
{
"name": "myTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 */30 * * * *"
}
],
"disabled": true`
}
project.json
{
"frameworks": {
"net46":{
"dependencies": {
}
}
}
}
您確定Azure函數實現不相關嗎?您沒有發佈該部分。 –
謝謝Jeroen,我已經更新了包含我看到的運行倍數的函數定義。 –
請更新問題標題以反映問題所在,因爲只有「Azure Function Multiple Job Host」沒有很好地表達。 –