最近再做一個定時任務的需求,使用了Quartz框架,使用了Cron表達式做時間配置,
做一個定時任務,要求在周一至周五上午05:00點生成表單並完成通知。
初始表達式為0 0 5 ? * 1-5 (但是這樣是錯誤的)
錯誤現象:明明設置的是周一至周五生成,但是周五卻沒有觸發定時任務。
后查找源碼發現,周一不是1 周日才是1 犯了一個挺低級的錯誤吧 。
正確表達式:0 0 5 ? * 2-6 或者 0 0 5 ? * MON-FRI (Cron支持配置星期縮寫 MON TUE WED THU FRI SAT SUN)
對於星期的操作,最好可以通過縮寫來完成,更加清晰,
使用數值的話,很容易認為應該從周一開始
星期數值枚舉如下
public final static int SUNDAY = 1;
public final static int MONDAY = 2;
public final static int TUESDAY = 3;
public final static int WEDNESDAY = 4;
public final static int THURSDAY = 5;
public final static int FRIDAY = 6;
public final static int SATURDAY = 7;