Quartz设置每小时执行,如何写CronExpression表达式?

Quartz设置每小时执行,如何写CronExpression表达式?,第1张

(1)表示匹配该域的任意值,假如在Minutes域使用, 即表示每分钟都会触发事件。

(2)只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 , 其中最后一位只能用?,而不能使用*,如果表示不管星期几都会触发,实际上并不是这样。

定时器的任务方法不能有返回值(如果有返回值) //?"0 * 14 * * .xsd 最后是我们的task任务扫描注解[html] view plain copy<task&gt.1:15触发 "0 15 10 * * ://www://www.org/schema/task" target="_blank">http0 15 10 * * ? 2005&quot? *&quot.org/schema/task/ 扫描的是comcontext0 15 10 * * ?" 每天早上10、具体使用以及参数请百度googleimport org.springframework.stereotype:annotation-driven/每5秒执行一次 @Override public void myTest(){ System我的配置扫描位置是.test的包下的、)[java] view plain copypublic interface IMyTestService { public void myTest()} [java] view plain copy@Component // public class MyTestServiceImpl implements IMyTestService { @Scheduled(cron="0/5 * * * * ? "/><context:component-scan base-package="com.test"/>

主要有三个核心概念:调度器、任务和触发器。

三者关系简单来说就是,调度器负责调度各个任务,到了某个时刻或者过了一定时间,触发器触动了,特定任务便启动执行。概念相对应的类和接口有:

1)JobDetail:望文生义就是描述任务的相关情况;

2)Trigger:描述出发Job执行的时间触发规则。有SimpleTrigger和CronTrigger两个子类代表两种方式,一种是每隔多少分钟小时执行,则用SimpleTrigger;另一种是日历相关的重复时间间隔,如每天凌晨,每周星期一运行的话,通过Cron表达式便可定义出复杂的调度方案。

3)Scheduler:代表一个Quartz的独立运行容器,Trigger和JobDetail要注册到Scheduler中才会生效,也就是让调度器知道有哪些触发器和任务,才能进行按规则进行调度任务。

0 0/10 8-11 1-30 8点(8点执行)到晚上10点每隔10分钟触发一次

0 0/1 11-13 1-31 1-13点每隔1小时执行一次

cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式组成。这些表达式之间用空格分隔。

1.Seconds (秒)

2.Minutes(分)

3.Hours(小时)

4.Day-of-Month  (天)

5.Month(月)

6.Day-of-Week (周)

7.Year(年)

例:"0 0 12 ? * WED” 意思是:每个星期三的中午12点执行。

个别子表达式可以包含范围或者列表。例如:上面例子中的WED可以换成"MON-FRI","MON,WED,FRI",甚至"MON-WED,SAT"。

子表达式范围:

1.Seconds (0~59)

2.Minutes (0~59)

3.Hours (0~23)

4.Day-of-Month (1~31,但是要注意有些月份没有31天)

5.Month (0~11,或者"JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,DEC")

6.Day-of-Week (1~7,1=SUN 或者"SUN, MON, TUE, WED, THU, FRI, SAT”)

7.Year (1970~2099)

扩展资料:

Quartz是一个完全由java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能。

但就其简易形式看,你会发现它易用得简直让人受不了!。简单地创建一个实现org.quartz.Job接口的java类。Job接口包含唯一的方法:

public void execute(JobExecutionContext context)

throws JobExecutionException

在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,Quartz将密切注意剩余时间。

当调度程序确定该是通知你的作业的时候,Quartz框架将调用你Job实现类(作业类)上的execute()方法并允许做它该做的事情。

无需报告任何东西给调度器或调用任何特定的东西。仅仅执行任务和结束任务即可。如果配置你的作业在随后再次被调用,Quartz框架将在恰当的时间再次调用它。

参考资料来源:百度百科-quartz


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11866350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存