首页  

cron表达式中 * 与 ? 的区别     所属分类 linux 浏览量 1576
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的区别