iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0

Schedule常用表達式Cron

  • 甚麼是Cron? ⭐⭐⭐
    • Cron(chronos),是排程的 時間表達式,用於設定週期性、間隔的時間。
    • 原本是類Unix作業系統的任務時間系統,但因後續沿用到了許多工具中,如Spring Boot的Schedule,也是本次我想攻略的部分!
    • 而我們以cron設定的排程任務,又稱為「cron jobs」。
  • Cron的格式 ⭐⭐⭐⭐⭐⭐⭐⭐
    • 基本的格式 ➝ (分 時 日 月 星期)
    • 如 : (59 23 * * *) 表示每天23時59分執行...。
    • 透過上面的範例可以知道 * 表示 任意、所有 的意思。
      https://ithelp.ithome.com.tw/upload/images/20260806/201834410iOn6tuwAI.png
  • Linux及Spring的cron差異 ⭐⭐⭐⭐
    • Linux採用基本的5個單位格式(上述的格式)
    • 而Spring則採用6個單位格式 ➝ (秒 分 時 日 月 星期)

    ? 的意義

    • 當我寫下 (* 12 15 * *) (Spring記得多加一個秒單位)。
      • Linux ➝ 是每月15號(不管星期幾)的12點。
      • Spring ➝「星期日(0)到星期六(6)」 & 「15號」的12點(邏輯衝突),此時會報錯。
      • 這是因為Linux的 * 是任意。而Spring的 * 是所有。
    • Spring的 ?
      • 因此Spring加了 ? 來針對日、星期表達「忽略、不管」的概念,因此當我們在寫Spring的cron格式時,需注意 「日、星期」必須 有一個是 ?

本篇文章出自《每天學Java直到今年結束》Day218,大家可以到我的網站上查看~


上一篇
Day2 : 關於原生Java的Schedule - 2
系列文
Java Spring專案的兩大元件 - Security、Schedule3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言