cron表达式中 * 与 ? 的区别
所属分类 linux
浏览量 1593
Cron Expression: What exactly is the difference between ? and * in a cron expression?
* means every possible value in the field.
? means you don't care about the value.
It's used when you have two fields that may contradict each other.
for example a cron specification for running at 10AM on the first day of every month
0 0 10 1 * ? *
Seconds: 0 - we want it to run on 10:00:00
Minutes: 0 - we want it to run on 10:00:00
Hours: 10 - we want it to run on 10:00:00
Day of month: 1 - we want it to run of the 1st of every month
Month: * - we want it to run on every month (e.g., January 1st, February 1st, etc.)
Day of week: ? - we don't care about the day of week. The cron should run on the 1st of every month, regardless of whether it's a Sunday, a Monday, etc.
Year: * - we want it to run on every year
Seconds,Minutes,Hours,Day-of-month,Month,Day-of-week
?只能出现在【日期】与【星期几】中,且不能同时出现
【日期】与【星期几】两者为互斥的,不能同时设置
假设日期设置为1,星期几也设置为1,
每月1日且为周一时触发,可能一年之中没有任何一天能满足上述条件
10 * * * * ? //合法
10 * * * ? * //合法
两个非法的例子
0 0 10 1 ? ?===java.text.ParseException: '?' can only be specified for Day-of-Month or Day-of-Week.
0 0 10 1 * *===java.text.ParseException: Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.
上一篇
下一篇
团队管理的1+4+7法则
springboot @Autowired 注解处理要点
spring autowired注解不生效的一种情况
SpringBoot定时任务 schedule
mybatis独立使用(不依赖spring)
mybatis中 DefaultSqlSessionFactory和SqlSessionManager的区别