簡體   English   中英

Azure Web 在所有部署上不執行計時器觸發器的作業 Function

[英]Azure Web Job With Timer Trigger Not Executing Function on All Deployments

我有一個 web 作業,它有一個定時器觸發器,設置為在格林威治標准時間午夜執行。 web 作業是一個 .NET 核心控制台項目,它通過 DevOps 發布管道部署到三個不同的應用程序服務實例。 在 web 作業部署到的第一個環境中,作業按計划觸發,可執行文件運行,Kudu 日志語句指示成功。 在其他兩個環境中,web 作業按計划觸發,但可執行文件並未按照指示成功顯示的日志語句所示運行。 在所有三個環境中,日志都表明 web 作業已觸發,並且已找到 function 方法,但只有最初部署它的應用程序實例執行邏輯。

在不同的應用服務環境中運行同一個web作業時,是否有什么要求可以確保每個作業都成功執行? 我在想,因為每個作業的應用程序設置都指向同一個存儲帳戶,所以這與它有關,但老實說,這是我創建的第一個 web 作業,所以我不確定。

我試圖在門戶中手動啟動 web 作業,但由於它是一個計時器作業,我不相信它會以這種方式成功執行

正如@Thiago Custodio所說的那樣,

每個環境都應該有自己的存儲帳戶,以便正確執行觸發器

通常情況下,計時器觸發器 Web 作業將在任何時間點運行單個實例,因為它具有 Singleton 鎖定功能。

當為該計時器觸發器 Web 作業或 Azure Function 啟動作業主機時,將激活此 singleton 鎖定功能,這確保只有一個實例正在運行,或者如果 singleton 鎖定功能意味着未獲取 blob 租約,則它會生成該運行的另一個實例timer trigger function 或 Web Job - 我之前復制過的類似功能,但沒有獲得多個實例。

因此,為每個環境(如開發人員、暫存/測試、生產)設置單獨的存儲帳戶可以輕松跟蹤日志,這是 GitHub Azure Web Jobs Timer Trigger singleton 鎖定文章,其中提供了不同環境的作業主機配置代碼.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM