定時任務__應用管理_用戶指南_容器服務-阿裏雲
定時任務是常見需求。普遍的做法是,選擇一台或幾台機器,通過 crontab 實現定時任務。但是對於大規模或大量的定時任務,這種做法的缺點非常多,比如:
- 可靠性低,一台機器宕機,該機器上的定時任務就無法執行了。
- 沒有調度功能,機器之間的負載可能不均衡。
- 沒有重試機製,任務可能運行失敗。
- 無法運行大規模分布式任務。
容器服務在離線任務的基礎上,增加了定時任務的功能,通過簡單的描述,解決了上述問題。關於離線任務的詳細信息,參見 運行離線任務。
注意:隻有10月25號之後升級了 Agent 版本或新創建的集群才能使用該功能。
基於 Docker Compose 的定時任務描述
同離線任務一樣,定時任務也是基於 Docker Compose 的,您隻需要在應用模板裏添加 aliyun.schedule
標簽即可實現定時功能。如下麵的例子所示。
version: "2"
labels:
aliyun.project_type: "batch"
aliyun.schedule: "0-59/30 * * * * *"
services:
s1:
image: registry.aliyuncs.com/jimmycmh/busybox:latest
labels:
aliyun.scale: "5"
aliyun.retry_count: "3"
aliyun.remove_containers: "remove-all"
command: date
其中aliyun.schedule: "0-59/30 * * * * *"
表示每 30 秒執行一次該任務;schedule 的格式和 crontab 完全相同(但要注意 schedule 的格式為 秒 分 時 天 月 星期
,比 Linux 上的 crontab 多了秒這一項),使用的時間為北京時間。
因為定時功能隻適用於離線任務,所以隻要您添加了 aliyun.schedule
標簽,係統會自動添加 aliyun.project_type: "batch"
標簽,因此上述例子中的 aliyun.project_type: "batch"
可以省略。
另外,離線任務中所有的功能,在定時任務中依然可用,比如 scale
、retry_count
、remove_containers
等。有關標簽的具體含義,參見 運行離線任務。
執行過程
定時任務被創建後,應用處於“等待”狀態。當任務指定的時間到達時,任務會被啟動運行,其後的狀態變化和離線應用相同;下一個執行時間到達時,應用狀態會重複這一過程。
同一個定時任務同一時刻隻會有一個實例在執行,如果任務的執行時間大於其執行周期(比如上述任務的執行時間大於 30 秒),則下一次執行會進入執行隊列;如果執行隊列長度大於 3,則會丟棄該次執行。
您可以在應用詳情頁麵單擊 運行曆史 查看運行曆史及結果,如下圖所示。運行曆史列表隻保留最後 10 次的運行曆史。
高可用性
定時任務控製器采用主-從備模式。主控製器故障時,控製功能將切換至備用控製器。
如果任務的執行時刻正好在主從切換期間,則會延遲至切換完成後執行。如果主從切換期間同一個任務有多次執行,切換完成後隻會執行一次;因此,為了保證任務不丟失,請不要設計重複周期小於一分鍾的任務。
最後更新:2016-11-23 16:04:20
上一篇:
運行離線任務__應用管理_用戶指南_容器服務-阿裏雲
下一篇:
係統默認應用列表__應用管理_用戶指南_容器服務-阿裏雲
SLBSubDomainType__數據類型_API文檔_雲解析-阿裏雲
正則表達式規範__附錄_SQL_大數據計算服務-阿裏雲
刪除角色__賬號管理類 API_Open API 參考_企業級分布式應用服務 EDAS-阿裏雲
企業郵箱在iPhone5上使用的設置說明__客戶端使用_郵箱常見問題_企業郵箱-阿裏雲
卸載磁盤__磁盤相關接口_API 參考_雲服務器 ECS-阿裏雲
性能測試流程指南__性能測試流程體係_性能測試體係_性能測試-阿裏雲
雲資源授權__安全管理_快速入門_數據管理-阿裏雲
創建標簽__標簽管理_用戶指南_雲數據庫 RDS 版-阿裏雲
如何查看代金券?___代金券_代金券及推薦碼_財務-阿裏雲
報表製作-文件管理__製作報表_Quick BI-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲