Java定時器的cron設定詳解Quartz

2021-08-29 18:05:47 字數 3086 閱讀 7154

這些星號由左到右按順序代表 : * * * * * * *

格式: [秒] [分] [小時] [日] [月] [周] [年]

序號 說明   是否必填  允許填寫的值         允許的萬用字元

1      秒          是        0-59                        , - * /

2      分          是        0-59                        , - * /

3     小時        是        0-23                        , - * /

4      日          是        1-31                        , - * ? / l w

5      月          是        1-12 or jan-dec     , - * /

6      周          是        1-7 or sun-sat      , - * ? / l #

7      年          否        empty 或 1970-2099  , - * /

接下來的cron表示式,我會結合著quartz來描述。首先cron表示式是有7個域的,依次分別是:秒分時日月周年,其中年是可選型別,也就是說他如果在不設定年分的情況下是每年。

1、星號(*)

他在每個域都可以存在,包含所有合法的值,看好這裡是包含所有,意思就是說在那乙個域上表示這個域上的所有值,加入在月,表示1-12,也就是說是每月,都會被執行。

示例1:0**1*?   note:每月1號凌晨都會被執行。

示例2:0**?**   note:每分鐘的00秒被執行。

2、問號(?)

他在cron表示式中,必定存在,有且只有乙個,且他只能在日和周的域中存在,表示,不關係這個域是什麼值,看好了,跟*的包含所有值不同,他是不關係是月的哪一天或是周的哪一天。如果在周域定義具體的數值,日域必須為問號(?),如果在日域定義啦具體的數值,那麼周域就必須為問號(?)。為什麼,因為避免含糊不清的表達方式,比如3月的第20天,剛好是第三週的第5天,那麼如果在日域定義20,周域定義5這樣,就雙重定義,很蛋疼。cron表示式也不允許。

示例1:0 10 18 ? 3 web     note:每年3月的每個星期三,下午6點10分都會被觸發

示例2:0 10 18 15 3 ?        note:每年三月的第15天,下午6點10分都會被觸發

3、橫槓(-)

他在cron表示式中,可以存在任何域,如果存在某個域,表示起止時間,他表示乙個時間段。

例項1:0 10 18 1-5 * ?          note:每月的1號到5號(包含每月1號和5號,每月共計5天都會被觸發),下午6點10分都會被觸發

例項2:0 10-15 * ? * *          note:每小時的第10分鐘到第15分鐘(包含每小時的第10分鐘和第15分鐘,每小時共計5分鐘都會被觸發),都會被觸發

4、逗號(,)

他在cron表示式中,可以存在任何域,如果存在某個域,表示可選值,他是個多點的概念。

例項1:10,20  *  * ? * *         note:每分鐘的第10秒與第20秒都會被觸發

例項2:0 10,20 * 1,2 * ?          note:每月的第1天與第2天的,每小時的第10分鐘與第20分鐘被觸發。

5、斜劃線(/)

他在cron表示式中,可以存在任何域,表示增量,是在域中設定乙個起始的值,然後每隔多少時間的概念。

例項1:5/20 * * ? * *           note:每分鐘的第5秒,第25秒,第45秒 都會被執行。

例項2:0 * 2/2 ? *  *          note:每天的第2小時,第4小時,第6小時,第8小時 ... 第22小時的00分00秒都會被觸發。

6、井號(#)

他在cron表示式中,只能存在周這乙個域,表示第幾周的星期幾,如果超出範圍,則忽略不記。

例項1:* * * ? * 3#4            note:每月的第4個星期的周2,凌晨觸發。

例項2:* * * ? * 6#2            note:每月的第2個星期的周5,凌晨觸發

常用示例:

0 0 12 * * ? 每天12點觸發

0 15 10 ? * * 每天10點15分觸發

0 15 10 * * ? 每天10點15分觸發

0 15 10 * * ? * 每天10點15分觸發

0 15 10 * * ? 2005 2023年每天10點15分觸發

0 * 14 * * ? 每天下午的 2點到2點59分每分觸發

0 0/5 14 * * ? 每天下午的 2點到2點59分(整點開始,每隔5分觸發)

0 0/5 14,18 * * ? 每天下午的 2點到2點59分(整點開始,每隔5分觸發)以及每天下午的 18點到18點59分(整點開始,每隔5分觸發)

0 0-5 14 * * ? 每天下午的 2點到2點05分每分觸發

0 10,44 14 ? 3 wed 3月分每週三下午的 2點10分和2點44分觸發 (特殊情況,在乙個時間設定裡,執行兩次或 兩次以上的情況)

0 59 2 ? * fri 每週5凌晨2點59分觸發;

0 15 10 ? * mon-fri 從周一到周五每天上午的10點15分觸發

0 15 10 15 * ? 每月15號上午10點15分觸發

0 15 10 l * ? 每月最後一天的10點15分觸發

0 15 10 ? * 6l 每月最後一周的星期五的10點15分觸發

0 15 10 ? * 6l 2002-2005 從2023年到2023年每月最後一周的星期五的10點15分觸發

0 15 10 ? * 6#3 每月的第三週的星期五開始觸發

0 0 12 1/5 * ? 每月的第乙個中午開始每隔5天觸發一次

0 11 11 11 11 ? 每年的11月11號 11點11分觸發(光棍節)

Java定時器的cron設定詳解

這些星號由左到右按順序代表 格式 秒 分 小時 日 月 周 年 序號 說明 是否必填 允許填寫的值 允許的萬用字元 1 秒 是 0 59 2 分 是 0 59 3 小時 是 0 23 4 日 是 1 31 l w 5 月 是 1 12 or jan dec 6 周 是 1 7 or sun sat ...

Java定時器的cron設定詳解

這些星號由左到右按順序代表 格式 秒 分 小時 日 月 周 年 序號 說明 是否必填 允許填寫的值 允許的萬用字元 1 秒 是 0 59 2 分 是 0 59 3 小時 是 0 23 4 日 是 1 31 l w 5 月 是 1 12 or jan dec 6 周 是 1 7 or sun sat ...

cron風格定時器 crontab定時器工具

要使用crontab定時器工具,必須要啟動cron服務 service cron start crontab各引數說明 e 執行文字編輯器來編輯crontab,內定的文字編輯器是vi r 刪除目前的crontab l 列出目前的crontab 檢視專用 代表所有的取值範圍內的數字。特別要注意哦!代表...