iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 13
0
DevOps

遠離 DevOops系列 第 13

[Day 13] Oops!Drone - Cron Jobs

今天來介紹Drone的排程設定功能及應用
有三個方法可以設定排程

  • From Drone Server UI
  • From Drone CLI
  • From Drone API

此篇主要用 From Drone Server UI & From Drone CLI 兩種方式設定來介紹

1.From Drone Server UI

先到 Drone Server 進入你要設定的repo setting介面,下面有個設定Cron Jobs的功能
https://ithelp.ithome.com.tw/upload/images/20200919/20115289L8fZ58n3eh.png

為大家示範,我建立了三個分支ithome01, ithome02, ithome03 都設定每小時跑一次
https://ithelp.ithome.com.tw/upload/images/20200920/20115289a8E5k6D9mh.png

https://ithelp.ithome.com.tw/upload/images/20200920/20115289PJqobG9nPp.png

一小時後

https://ithelp.ithome.com.tw/upload/images/20200921/20115289YFr3B9k8XX.png

之後的每小時

2.From Drone CLI

如果想要用drone cli也可以

Drone CLI 安裝 - 文件

Drone CLI 設定

https://ithelp.ithome.com.tw/upload/images/20200919/20115289Iifvrlyx0K.png

進入Drone Server Web UI 右上角 -> 點選 User Settings -> 執行 Example CLI Usage 下方的指令

就完成Drone CLI 的初始化設定囉

列出該專案的所有排程任務

drone cron ls my/ithome
ithome01 
Expr: @hourly
Next: 2020-09-20 00:00:00 +0800 CST

ithome02 
Expr: @hourly
Next: 2020-09-20 00:00:00 +0800 CST

ithome03 
Expr: @hourly
Next: 2020-09-20 00:00:00 +0800 CST

自訂排程任務

Most examples on the internet represent the times using 5 space-separated fields and exclude seconds. Excluding seconds will lead to unexpected behavior.

建立任務時,Drone 的 cron job跟一般不一樣的地方在於 它多了「秒」的設定,所以務必填寫6個參數5個空格,才不會有非預期的錯誤唷!

CronExp 排程表達式:
https://ithelp.ithome.com.tw/upload/images/20200921/20115289YyQjfpSLNX.png

圖片來自官網的介紹
https://docs.drone.io/cron/

drone cron add example

drone cron add "my/ithome" "hourly 45min 30sec" "30 45 * * * *" --branch ithome01

列出該專案的所有排程任務

drone cron ls my/ithome
hourly-45min-30sec
Expr: 30 45 * * * *
Next: 2020-09-21 09:45:30 +0800 CST

ithome01
Expr: @hourly
Next: 2020-09-21 10:00:00 +0800 CST

ithome02
Expr: @hourly
Next: 2020-09-21 10:00:00 +0800 CST

ithome03
Expr: @hourly
Next: 2020-09-21 10:00:00 +0800 CST

可以從列表看到自訂的排程已建立囉~

Oops 時間到了怎麼還沒觸發?

Timezones
The current implementation calculates the execution time based on UTC as opposed to local time.

由於文件上有說明,Cron Jobs 的時區是依照 UTC(Universal Time Coordinated),所以需要自己在轉換一下時間唷~

應用

常用來

  • 定時跑測試
  • 定時清理資料
  • 定時檢查某些機器
  • 定時執行某個shell script

上一篇
[Day 12] Oops!Drone - 進階應用
下一篇
[Day 14] Oops!Drone - Pipelines Services
系列文
遠離 DevOops30

1 則留言

0
Lemon
iT邦新手 5 級 ‧ 2021-01-07 23:30:37

官網也提供 API 介面,這樣就不用安裝 CLI 了

我要留言

立即登入留言