CronTrigger类
--------------------------------------------------------------------------------
Quartz有两大触发器,除了上面使用的SimpleTrigger外,就是CronTrigger。CronTrigger能够提供复杂的触发器表达式的支持。CronTrigger是基于Unix Cron守护进程,它是一个调度程序,支持简单而强大的触发器语法。
使用CronTrigger主要的是要掌握Cron表达式。Cron表达式包含6个必要组件和一个可选组件,如下表所示。
位置
含义
允许的特殊字符
1
秒(0~59)
, - * /
2
分(0~59)
, - * /
3
小时(0~24)
, - * /
4
日期(1~31)
, - * / ? L W C
5
月(JAN~DEC或1~12)
, - * /
6
星期(SUN~SAT或1~7)
, - * / ? L C #
7
年(可选,1970~2099),若为空,表示全部时间范围
, - * /
特殊字符的含义,见下表。
特殊字符
说明
*
通配符,任意值
?
无特定值。通常和其他指定的值一起使用,表示必须显示该值但不能检查
-
范围。e.g. 小时部分10-12表示10:00,11:00, 12:00
,
列分隔符。可以让你指定一系列的值。e.g. 在星期域中指定MON、TUE和WED
/
增量。表示一个值的增量,e.g. 分钟域中0/1表示从0开始,每次增加1min
L
表示Last。它在日期和星期域中表示有所不同。在日期域中,表示这个月的最后一天,而在星期域中,它永远是7(星期六)。当你希望使用星期中某一天时,L字符非常有用。e.g. 星期域中6L表示每一个月的最后一个星期五
W
在本月内离当天最近的工作日触发,所谓的最近工作日,即当天到工作日的前后最短距离,如果当天即为工作日,则距离是0;所谓本月内指的是不能跨月取到最近工作日,即使前/后月份的最后一天/第一天确实满足最近工作日。e.g. LW表示本月的最后一个工作日触发,W强烈依赖月份。
#
表示该月的第几个星期,e.g. 1#2表示每一个月的第一个星期一
C
日历值。日期值是根据一个给定的日历计算出来的。在日期域中给定一个20C将在20日(日历包括20日)或20日后日历中包含的第一天(不包括20日)激活触发器。例如在一个星期域中使用6C表示日历中星期五(日历包括星期五)或者第一天(日历不包括星期五)
Cron表达式举例:
"30 * * * * ?" 每半分钟触发任务
"30 10 * * * ?" 每小时的10分30秒触发任务
"30 10 1 * * ?" 每天1点10分30秒触发任务
"30 10 1 20 * ?" 每月20号1点10分30秒触发任务
"30 10 1 20 10 ? *" 每年10月20号1点10分30秒触发任务
"30 10 1 20 10 ? 2011" 2011年10月20号1点10分30秒触发任务
"30 10 1 ? 10 * 2011" 2011年10月每天1点10分30秒触发任务
"30 10 1 ? 10 SUN 2011" 2011年10月每周日1点10分30秒触发任务
"15,30,45 * * * * ?" 每15秒,30秒,45秒时触发任务
"15-45 * * * * ?" 15到45秒内,每秒都触发任务
"15/5 * * * * ?" 每分钟的每15秒开始触发,每隔5秒触发一次
"15-30/5 * * * * ?" 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次
"0 0/3 * * * ?" 每小时的第0分0秒开始,每三分钟触发一次
"0 15 10 ? * MON-FRI" 星期一到星期五的10点15分0秒触发任务
"0 15 10 L * ?" 每个月最后一天的10点15分0秒触发任务
"0 15 10 LW * ?" 每个月最后一个工作日的10点15分0秒触发任务
"0 15 10 ? * 5L" 每个月最后一个星期四的10点15分0秒触发任务
"0 15 10 ? * 5#3" 每个月第三周的星期四的10点15分0秒触发任务
分享到:
相关推荐
Quartz.net作业调度自定义定时执行任务多任务执行c#,定时执行任务,如超时取消订单,自动确认收货等等
使用Quartz调度任务,根据需要人为的终止某个任务,适用于很多常见的场景
java定时执行多任务和quartz定时执行多任务
quartz.net+TopShelf
java + quartz 实现定时任务的简单任务,下载即可运行
C# Quartz.Net定时任务操作明细、完整过程 每种场景均有涉及,代码Copy稍作修改就可使用
quartz 动态定时任务 根据数据库数据配置动态定时任务
现有需求需要每天早上2点和下午5点执行一个方法Synchronization.run(): <!-- 调用频率设置 每天上午2点和下午5点 cron表达式 --> <bean id="runTime" class="org.springframework.scheduling.quartz....
定时任务quartz实现分组串行并行动态配置
使用Spring Quartz执行定时任务
NULL 博文链接:https://thinktothings.iteye.com/blog/804738
Quartz--JAVA定时任务\Java应用:Java调度任务和Spring Quartz (1)
spring+springMVC+mybatis+quartz动态定时任务
quartz动态任务管理源码,为了方便各位需要者。
spring定时器代码。解决多次执行问题。包含quartz-all.jar包。 说明很详细。希望能帮上哪位朋友。
tomcat启动时立即调用quartz执行一次
Quartz如何实现判断某个任务是否正在运行,在项目中用到的,已经测试过了,很好用,分享给大家
在实际项目应用中经常会用到定时任务,可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间、频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合...
NULL 博文链接:https://medbricom.iteye.com/blog/1782765
Quartz的工作原理是通过Job和Trigger两个核心概念来实现的,Job是具体需要执行的任务,Trigger用来触发任务的执行时机。在Quartz中,可以通过定义各种Trigger来实现不同的调度策略,如简单调度、Cron调度等。Quartz...