在Spring中,定时器中一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
1.秒(0~59)
2.分钟(0~59)
3.小时(0~23)
4.天(月)(0~31,但是你需要考虑你月的天数)
5.月(区间为0~11)
6.天(星期)(1~7 或 SUN,MON,TUE,WED,THU,FRI,SAT,其中1=SUN)
7.年份(1970-2099)
其中每个元素可以是一个值(如6),一个连续区间(8-17),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。
由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?。
否则会出现如下报错:
Property 'cronExpression' threw exception;nested exception is java.text.ParseException: Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.
在Linux中,crontab命令与spring类似,linux中表达式为六个,其中最后一个表达式为制定要执行crontab任务的脚本文件
crontab 文件的格式如下:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
1. minute: 区间为 0 – 59
2. hour: 区间为0 – 23
3. day-of-month: 区间为0 – 31
4. month: 区间为1 – 12. 1 是1月. 12是12月。
5. Day-of-week: 区间为0 – 7,周日可以是0或7。