spring的corn表达式c是什么意思

作者&投稿:曾瑞 (若有异议请与网页底部的电邮联系)
spring定时任务设置的值是 "0 10 0 * * ?" 表示什么~

这个是Cron时间表达式。
分别对应的是秒、分、时、日、周、年。前5个是必须的,最后一个可选,用户这个表达式表示每天的0点10分准时执行。
例如:
00 0/2 * * * ? 这个的意思是每两分钟触发一次
00 0/30 * * * ? 这个就是每30分钟触发一次

扩展资料:
计划任务
Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
参考资料来源:百度百科-cron

写法:
0 0/30 * * * ?
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
Spring-quartz CronExpression表达式:
1. 秒 (0~59)
2. 分钟 (0~59)
3. 小时 (0~23)
4. 天(月) (0~31,但是需要考虑你月的天数)
5. 月 (0~11)
6. 天(星期) (1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7. 年份 (1970-2099)
注:其中每个元素可以是一个值(如6),一个连续区间(9-12)。
由于"月份中的日期"和"星期中的日期"这两个元素互斥的,故,必须要对其中一个设置。

扩展资料
有些子表达式能包含一些范围或列表:
例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”
"*"字符代表所有可能的值
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天。
"/"字符用来指定数值的增量
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 ;
在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样。
"?"字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值。
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为"?"
"L"字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写。
但是它在两个子表达式里的含义是不同的。
在天(月)子表达式中,“L”表示一个月的最后一天 ,
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT

字符“C”允许在日期域和星期域出现。

这个字符依靠一个指定的“日历”。

也就是说这个表达式的值依赖于相关的“日历”的计算结果,如果没有“日历”关联,则等价于所有包含的“日历”。

如:日期域是“5C”表示关联“日历”中第一天,或者这个月开始的第一天的后5天。星期域是“1C”表示关联“日历”中第一天,或者星期的第一天的后1天,也就是周日的后一天(周一)。


下面是详细的 corn说明


Spring定时器corn表达式详解


1.结构

corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份

2.各字段的含义

 

字段    允许值    允许的特殊字符    

秒    0~59    - * /    

分    0~59    - * /    

小时    0~23    - * /    

日期    1~31    - * ? / L W C     

月份    1~12或者或者 JAN-DEC    - * /    

星期    1~7或者 SUN-SAT     - * ? / L C #     

年(可选,留空)    1970~2099    - * /    

 

 

例子:
0/5 * * * * ? : 每5秒执行一次

“*”字符被用来指定所有的值。如:"*"在分钟的字段域里表示“每分钟”。 
“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。 
月份中的日期和星期中的日期这两个元素时互斥的一起应该通过设置一个问号来表明不想设置那个字段。

“-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。

“,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”。

“/”字符用于指定增量。如:“0/15”在秒域意思是每分钟的0,15,30和45秒。“5/15”在分钟域表示每小时的5,20,35和50。符号“*”在“/”前面(如:*/10)等价于0在“/”前面(如:0/10)。记住一条本质:表达式的每个数值域都是一个有最大值和最小值的集合,如:秒域和分钟域的集合是0-59,日期域是1-31,月份域是1-12。字符“/”可以帮助你在每个字符域中取相应的数值。如:“7/6”在月份域的时候只有当7月的时候才会触发,并不是表示每个6月。

L是‘last’的省略写法可以表示day-of-month和day-of-week域,但在两个字段中的意思不同,例如day-of-month域中表示一个月的最后一天。如果在day-of-week域表示‘7’或者‘SAT’,如果在day-of-week域中前面加上数字,它表示一个月的最后几天,例如‘6L’就表示一个月的最后一个星期五。


字符“W”只允许日期域出现。这个字符用于指定日期的最近工作日。例如:如果你在日期域中写 “15W”,表示:这个月15号最近的工作日。所以,如果15号是周六,则任务会在14号触发。如果15好是周日,则任务会在周一也就是16号触发。如果是在日期域填写“1W”即使1号是周六,那么任务也只会在下周一,也就是3号触发,“W”字符指定的最近工作日是不能够跨月份的。字符“W”只能配合一个单独的数值使用,不能够是一个数字段,如:1-15W是错误的。


“L”和“W”可以在日期域中联合使用,LW表示这个月最后一周的工作日。

字符“#”只允许在星期域中出现。这个字符用于指定本月的某某天。例如:“6#3”表示本月第三周的星期五(6表示星期五,3表示第三周)。“2#1”表示本月第一周的星期一。“4#5”表示第五周的星期三。


字符“C”允许在日期域和星期域出现。这个字符依靠一个指定的“日历”。也就是说这个表达式的值依赖于相关的“日历”的计算结果,如果没有“日历”关联,则等价于所有包含的“日历”。如:日期域是“5C”表示关联“日历”中第一天,或者这个月开始的第一天的后5天。星期域是“1C”表示关联“日历”中第一天,或者星期的第一天的后1天,也就是周日的后一天(周一)。


3.常用表达式举例


"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发




spring quartz配置每分钟执行一次,为什么启动项目只执行一次?
答:<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="testJobDetail"/> <property name="cronExpression" value="0 */1 * * * ?"/><!-- 每隔1分钟触发一次 --> </bean> 2、说明:1)Cron表达式的格式:秒 分 时 日...

spring 定时任务,每周一的早上五点时间怎么写?
答:每周一早上5点的cron表达式: 0 0 5 ? * 1 可以关注我的微信公众号:情情说,有问题可以直接沟通 ~

spring 定时任务,每年最后一天凌晨 触发执行的表达式怎么写,求指教...
答:定时任务bean <bean id="webServiceScheduledManager" class="com.scheduled.WebServiceScheduledManager"> <property name="" value="" /> </bean> 定时器 <task:scheduled-tasks> <task:scheduled ref="webServiceScheduledManager"method="autoScheduled" cron="0 0 0 31 12 ?" /> </task:...

Spring task定时任务
答:被注解的方法不能传入参数,通常有一个 void 的返回值,如果不是,返回值将会被忽略。cron 是一个类似cron的表达式,可以指定秒、分、时、一个月的第几天、月、一周的星期几。例如,"0 * * * * MON-FRI"表示工作日的每一分钟都执行。zone 指定了cron表达式的时区。如果未指定,则是服务器的...

Spring quartz 为何配置成定时不执行,但每隔一段时间可以执行
答:cron表达式0 0 11 * * ?表示每天的11点0分0秒执行以下是相关规则,请参考 CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时...

spring quartz 每30分钟执行一次cronExpression表达式怎么写_百度...
答:表达式示例意义 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间...

spring quartz 每30分钟执行一次cronExpression表达式怎么写_百度...
答:0 /30 Cron 表达式包括以下 7 个字段:秒 分 小时 月内日期 月 周内日期 年(可选字段)特殊字符

Cron表达式每月最后五天每天执行应该怎样写?
答:0 0 8 L-1 * ? 每月倒数第二天早上8点执行 0 0 8 L-2 * ? 每月倒数第三天早上8点执行 0 0 8 L-3 * ? 每月倒数第四天早上8点执行 0 0 8 L-4 * ? 每月倒数第五天早上8点执行 暂时没找到合在一起的办法,如果有哪位网友知道请指教。Spring版本4.3.20,不同的版本可能不...

spring定时器每天8点16点每隔2个小时执行一次
答:cron表达式 0 0 8-16/2

Spring+quartz 做定时任务时,每5分种执行一次,怎么写法
答:<bean id="GetEmailTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail"> <ref bean="GetEmailTask"/> </property> <!-- cron表达式 --> <property name="cronExpression"> <value>0 0/5 * * * ? *</value><!--每天的24小时(6-...