[Record] App Service WebJobs 排程的使用邏輯

由於需要以排程的方式在 App Service 執行 WebJobs, 

但是設定方式不同於一般的方式,如直接選擇執行時間,

而是需要使用一種叫做 NCRONTAB 的邏輯方式進行設定, 

故進行記錄 NCRONTAB 的相關邏輯

概述

由於需要以排程的方式在 App Service 執行 WebJobs, 

但是設定方式不同於一般的方式,如直接選擇執行時間,

而是需要使用一種叫做 NCRONTAB 的邏輯方式進行設定, 

故進行記錄 NCRONTAB 的相關邏輯。

除此之外, 該邏輯也適用於 Azure Function。

正文

NCRONTAB 會有 6 個變數, 分別為 {second} {minute} {hour} {day} {month} {day-of-week}

順序是固定的,與我們經常使用時間的順序(年-月-日-時-分-秒-星期)不同

預設時間為 UTC 時間,需要留意

邏輯為

“*” : 為所有值

“-” : 為區間

“/” : 為每

“,” : 為複數

備註

星期可以使用數字:0 ~ 6 (0 為星期天)

文字可以使用完整星期與月份的單字 (Monday 或 January),或以三個字母為縮寫的字母 (如 Mon 或 Jan) 做使用

例子

"* * * * * *" - 每天每小時每分鐘每秒執行

"0 10 * * * *" - 每天每小時的第 10 分鐘執行

"0 * 9 * * *" - 每天早上 9 點開始執行一次並每分鐘執行一次至執行一小時

“0 0 9-18 * * *” - 每天的早上 9 點開始,每小時執行一次至晚上 18 點

"0 0 0,6,12,18 * * *" - 每天的 0000,0600,1200,1800 執行一次

"0 */10 * * * *" - 每天每經過每 10 分鐘執行一次

"0 30 09 * * Mon" 每周一早上 0930 執行一次

根據例子我們可以發現,邏輯上我們無法根據非週期性的時間進行執行設定, 如我們想要早上 0900 執行一次與晚上 1830 執行一次

若有相關需求,建議使用其他方式進行執行,如 Logic App 是不錯的選擇

 

參考

NCRONTAB expressions - https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions 

分級: 入門是認識, 基本是運用, 進階是混合結合
範本是已可下載或可使用的範例, 至於教程當然是學習的結晶