1、cron格式
【秒数】【分钟】【小时】【日期】【月份】【星期几】【年份(可省略)】
2、关于【日期】与【星期几】的说明
1、【日期】与【星期几】两者为互斥的,不能同时设置。这个比较容易理解,假设日期设置为1,星期几也设置为1,那含义是什么:每月1日且为周一时触发,可能一年之中没用任何天能满足上述条件,更重要的是什么人能有这种xx的需求呢?
2、【日期】与【星期几】中任何一个设置值(包含 *
),另一个必需使用 ?
来进行屏蔽,此时 ?
起到屏蔽的作用。?
只能出现在【日期】与【星期几】中,且不能同时出现, 比如以下是 每10秒触发任务的表达式
10 * * * * ? //合法
10 * * * ? * //合法
10 * * * ? ? //非法
10 * * * * * //非法
3、常用表达式符号说明:
*
表示任意值都满足触发条件
,
表示列表项目的分割,如 秒数中设置 1,3,17,则表示秒数为1,3,17时满足触发条件
-
表示连续的列表范围,如 秒数中设置 1-5,则表示秒数为1到5时,均满足触发条件
/
正常的用法为 x/y,x表示触发的起始数值,y表示后续间隔,如 秒数中设置 5/20,则表示从第5秒开始触发,然后每隔20秒再循环触发(25、45,下次循环5、25、45…)
4、表达式举例
10 * * * * ? 每10秒触发任务
10 10 * * * ? 每小时的10分10秒触发任务
10 10 1 * * ? 每天1点10分10秒触发任务
0 0 10,14,18 * * ? 每天10、14、18点触发任务
0 0/20 9-17 * * ? 每天9-17点,20分钟触发任务
0 * 12 * * ? 每天12:00 - 12:59期间的每1分钟触发
0 0/3 12 * * ? 在每天12:00 - 12:59期间的每3分钟触发
0 0-5 12 * * ? 在每天12:00 - 12:05期间的每1分钟触发
10 10 1 12 * ? 每月12号1点10分10秒触发任务
10 10 1 ? * 2 每周1的1点10分10秒触发任务
10 10 1 20 10 ? 2021 2021年10月20号1点10分10秒触发任务
10 10 1 * 10 ? 2021 2021年10月每天1点10分10秒触发任务
10 10 1 ? 10 * 2021 2021年10月每天1点10分10秒触发任务
10 10 1 ? 10 7 2021 2021年10月每周6 1点10分10秒触发任务
附:在线生成cron表达式:https://cron.qqe2.com/