操作場景
定時任務是按照指定時間周期運行的短任務。使用場景為在某個固定時間點,為所有運行中的節點做時間同步。
定時任務是基于時間的Job,就類似于Linux系統的crontab,在指定的時間周期運行指定的Job,即:
- 在給定時間點只運行一次。
- 在給定時間點周期性地運行。
CronJob的典型用法如下所示:
在給定的時間點調度Job運行。
創建周期性運行的Job,例如數據庫備份、發送郵件。
前提條件
已創建資源,具體操作請參見創建節點。
通過控制臺創建
步驟 1 登錄CCE控制臺。
步驟 2 單擊集群名稱進入集群,在左側選擇“工作負載”,在右上角單擊“創建負載”。
步驟 3 配置工作負載的信息。
基本信息
- 負載類型:選擇定時任務CronJob。工作負載類型的介紹請參見工作負載概述。
- 負載名稱:填寫工作負載的名稱。
- 命名空間:選擇工作負載的命名空間,默認為default。您可以單擊后面的“創建命名空間”,命名空間的詳細介紹請參見創建命名空間。
- 容器運行時:CCE集群默認使用普通運行時。
容器配置
-
容器信息
Pod中可以配置多個容器,您可以單擊右側“添加容器”為Pod配置多個容器。
- 基本信息:容器基本信息
- 生命周期:設置容器生命周期
- 環境變量:設置環境變量
- 容器日志:使用ICAgent采集容器日志
-
鏡像訪問憑證:用于訪問鏡像倉庫的憑證,默認取值為default-secret,使用default-secret可訪問SWR鏡像倉庫的鏡像。default-secret詳細說明請參見default-secret。
-
GPU顯卡:默認為不限制。當集群中存在GPU節點時,工作負載實例可以調度到指定GPU顯卡類型的節點上。
定時規則
-
并發策略:支持如下三種模式。
- Forbid:在前一個任務未完成時,不創建新任務。
- Allow:定時任務不斷新建Job,會搶占集群資源。
- Replace:已到新任務創建時間點,但前一個任務還未完成,新的任務會取代前一個任務。
-
定時規則:指定新建定時任務在何時執行,YAML中的定時規則通過CRON表達式實現。
- 以固定周期執行定時任務,支持的周期單位為分鐘、小時、日、月。例如,每30分鐘執行一次任務,對應的CRON表達式為“/30 ”,執行時間將從單位范圍內的0值開始計算,如 00:00:00 、 00:30:00 、 01:00:00 、 ... 。
- 以固定時間(按月)執行定時任務。例如,在每個月1日的0時0分執行任務,對應的CRON表達式為“0 0 1 /1 ”,執行時間為-01-01 00:00:00 、 -02-01 00:00:00 、 ... 。
- **以固定時間(按周)執行定時任務。例如,在每周一的0時0分執行任務,對應的CRON表達式為“0 0 1”,執行時間為 - -01 周一 00:00:00 、 - -08 周一 00:00:00 、 ... 。
- 自定義CRON表達式:關于CRON表達式的用法,可參考CRON官方文檔。
說明
?以固定時間(按月)執行定時任務時,在某月的天數不存在的情況下,任務將不會在該月執行。例如設置天數為30,而2月份沒有30號,任務將跳過該月份,在3月30號繼續執行。
由于CRON表達式的定義,這里的固定周期并非嚴格意義的周期。將從0開始按周期對其時間單位范圍(例如單位為分鐘時,則范圍為0~59)進行劃分,無法整除時最后一個周期會被重置。因此僅在周期能夠平均劃分其時間單位范圍時,才能表示準確的周期。
舉個例子,周期單位為小時,因為“/2、/3、/4、/6、/8和/12”可將24小時整除,所以可以表示準確的周期;而使用其他周期時,在新的一天開始時,最后一個周期將會被重置。比如CRON式為“* */12 * * ”時為準確的周期,每天的執行時間為00:00:00和 12:00:00 ;而CRON式為“ */13 * * *”時,每天的執行時間為00:00:00和 13:00:00 ,在第二天0時,雖然沒到13個小時的周期還是會被刷新。
- 任務記錄:可以設置保留執行成功或執行失敗的任務個數,設置為0表示不保留。
步驟 4 單擊右下角“創建工作負載”。