在軟體工程中,有蠻多工作都會需要排程的,而 Linux 排程是透過 crontab 與 at 這兩個,這兩個有啥異同呢? 我們可以發現工作排程的方式基本上分成:
- 例行性的 : 每隔一定的週期就會需要處理,那就可以使用
rontab
這個指令設定的任務循環- 突發性的 : 會訂一個時間點執行,但做完以後就沒有了,那就可以使用
at
指令處理僅執行一次就結束的任務Cron 是 Linux 系統下的一個定時任務管理服務,為了要精確表示「何時」執行, 就發明了一個抽象的 Cron 表達式,相信大家都有看過類似
0 12 * * *
這種在定時任務中常出現的寫法,像 「 GCP Cloud Scheduler」、「 GitHub Actions」、「 SpringBoot 的 @Scheduled」,都以 Cron 表達式來定義任務觸發時間點。
