1. cron表達式格式:
{秒數(shù)} {分鐘} {小時} {日期} {月份} {星期} {年份(可為空)}
-
“*”字符代表所有可能的值。“*”在{月份}里表示每個月的含義。 -
“/”字符用來指定數(shù)值的增量。
在{分鐘}里的“0/15”表示從第0分鐘開始,每15分鐘。
在{分鐘}里的“3/20”表示從第3分鐘開始,每20分鐘(它和“3,23,43”)的含義一樣。 -
“L”字符僅被用于{日期}和{星期},它是單詞“l(fā)ast”的縮寫。
在{日期},“L”表示一個月的最后一天。
在{星期},“L”表示一個星期的最后一天,也就是SAT。 - 如果在
“L”前有具體的內(nèi)容,它就具有其他的含義了。
“6L”表示這個月的倒數(shù)第6天,“FRIL”表示這個月的最一個星期五。
注意:在使用“L”參數(shù)時,不要指定列表或范圍, - 由于
{日期}和{星期}這兩個元素互斥的, 其中之一被指定了值以后, 必須要對另一個設為”?”。
2. cron表達式各占位符解釋:
-
{秒數(shù)}{分鐘} ==> 允許值范圍: 0~59 ,不允許為空值。
-
“*”代表每隔1秒鐘觸發(fā)。 -
“,”代表在指定的秒數(shù)觸發(fā)。比如”0,15,45”代表0秒、15秒和45秒時觸發(fā)任務。 -
“-“代表在指定的范圍內(nèi)觸發(fā),比如”25-45”代表從25秒開始觸發(fā)到45秒結束觸發(fā),每隔1秒觸發(fā)1次。 -
{小時} ==> 允許值范圍: 0~23 ,不允許為空值,若值不合法。占位符和秒數(shù)一樣。
-
{日期} ==> 允許值范圍: 1~31 ,不允許為空值。
-
{月份} ==> 允許值范圍: 0~11
-
{星期} ==> 允許值范圍: 1~7 (或 SUN,MON,TUE,WED,THU,F(xiàn)RI,SAT), 1代表星期天(SUN),以此類推,7代表星期六(SAT),不允許為空值。
-
{年份} ==> 允許值范圍: 1970~2099 ,允許為空。
3. 經(jīng)典案例
“30 * * * * ?” 每半分鐘觸發(fā)任務
“30 10 * * * ?” 每小時的10分30秒觸發(fā)任務
“30 10 1 * * ?” 每天1點10分30秒觸發(fā)任務
“0 0 10,14,16 * * ?” 每天上午10點,下午2點,4點
“0 0/30 9-17 * * ?” 朝九晚五工作時間內(nèi)每半小時
“0 * 14 * * ?” 在每天下午2點到下午2:59期間的每1分鐘觸發(fā)
“0 0/5 14 * * ?” 在每天下午2點到下午2:55期間的每5分鐘觸發(fā)
“0 0/5 14,18 * * ?” 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發(fā)
“0 0-5 14 * * ?” 在每天下午2點到下午2:05期間的每1分鐘觸發(fā)
“30 10 1 20 * ?” 每月20號1點10分30秒觸發(fā)任務
“30 10 1 20 10 ? *” 每年10月20號1點10分30秒觸發(fā)任務
“30 10 1 20 10 ? 2011” 2011年10月20號1點10分30秒觸發(fā)任務
“30 10 1 ? 10 * 2011” 2011年10月每天1點10分30秒觸發(fā)任務
“30 10 1 ? 10 SUN 2011” 2011年10月每周日1點10分30秒觸發(fā)任務
“15,30,45 * * * * ?” 每15秒,30秒,45秒時觸發(fā)任務
“15-45 * * * * ?” 15到45秒內(nèi),每秒都觸發(fā)任務
“15/5 * * * * ?” 每分鐘的每15秒開始觸發(fā),每隔5秒觸發(fā)一次
“15-30/5 * * * * ?” 每分鐘的15秒到30秒之間開始觸發(fā),每隔5秒觸發(fā)一次
“0 0/3 * * * ?” 每小時的第0分0秒開始,每三分鐘觸發(fā)一次
“0 15 10 ? * MON-FRI” 星期一到星期五的10點15分0秒觸發(fā)任務
“0 15 10 L * ?” 每個月最后一天的10點15分0秒觸發(fā)任務
“0 15 10 LW * ?” 每個月最后一個工作日的10點15分0秒觸發(fā)任務
“0 15 10 ? * 5L” 每個月最后一個星期四的10點15分0秒觸發(fā)任務
“0 15 10 ? * 5#3” 每個月第三周的星期四的10點15分0秒觸發(fā)任務