Quartz是Java版开源定时调度器。

核心概念:

Job

表示一个工作,要执行的具体内容。此接口中只有一个方法

void execute(JobExecutionContext context);

JobDetail

JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。

Trigger代表一个调度参数的配置,什么时候去调。

Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。

下面是一个小demo,看了demo可能更加容易理解。

1、Scheduler的配置

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="triggers">

<list>

<ref bean="cronTrigger" />

<ref bean="cronTriggerD" />

</list>

</property>

<property name="taskExecutor" ref="executor" />

</bean>

说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。

2、Trigger的配置

<!--调度触发器-环境数据整体数据-每搁15分钟执行一次-->

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

<property name="jobDetail" ref="jobDetail" />

<property name="cronExpression" value="0 */15 * * * ?" />

</bean>

<bean id="cronTriggerD" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

<property name="jobDetail" ref="jobDetailD" />

<property name="cronExpression" value="0 7 2,4,6 * * ?" />

</bean>

说明:

1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。

2)Cron表达式范例:

3、JobDetail的配置

<!-- 调度业务-环境数据整体汇总-->

<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<property name="targetObject" ref="bizObject" />

<property name="targetMethod" value="summaryData" />

<property name="concurrent" value="false"/>

</bean>

<!-- 调度业务-环境数据每天数据汇总-->

<bean id="jobDetailD" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<property name="targetObject" ref="bizObject" />

<property name="targetMethod" value="dailyData" />

<property name="concurrent" value="false"/>

</bean>

4、业务类的配置

<!-- 业务对象 -->

<bean id="bizObject"  class="com.jf.controller.AutoController"/>

5、业务类源代码

public class AutoController {

public void summaryData() {

//...........

public void dailyData() {

//...........

}

说明:业务类,是自己编写的实现业务代码的java类。

170321、Spring+Quartz实现定时任务的配置方法的更多相关文章

  1. Spring+Quartz 实现定时任务的配置方法

    Spring+Quartz 实现定时任务的配置方法 整体介绍 一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是 ...

  2. Spring+Quartz实现定时任务的配置方法

    1.Scheduler的配置 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" ...

  3. quartz (二) Spring+Quartz实现定时任务的配置方法

    JobDetail  设置执行的任务 :CronTrigger   触发器:设置执行的时间规则      ;  Scheduler    // 调度器,将任务与执行时间关联 本文转自:http://w ...

  4. Spring+Quartz实现定时任务的配置方法(插曲)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46376093 1.Scheduler的配置 <bean class=&quo ...

  5. Spring+Quartz实现定时任务的配置方法(转)

    1.Scheduler的配置 <bean id="myScheduler" class="org.springframework.scheduling.quartz ...

  6. Quartz实现定时任务的配置方法

    1.   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 ...

  7. Spring+quartz 实现定时任务job集群配置

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

  8. Spring Boot整合Quartz实现定时任务表配置

    最近有个小项目要做,spring mvc下的task设置一直不太灵活,因此在Spring Boot上想做到灵活的管理定时任务.需求就是,当项目启动的时候,如果有定时任务则加载进来,生成schedule ...

  9. Spring+quartz 实现定时任务job集群配置【原】

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

随机推荐

  1. Unity和安卓互调

    Unity调安卓 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); And ...

  2. atitit.科技公司的超级武器--超级框架,到底要不要自己的框架??

    atitit.科技公司的超级武器--超级框架,到底要不要自己的框架?? 我们生活的时代,,任何一个时代,总有人会以经济之类的理由劝阻人向未知领域探索,基本上,他们的理由无非几种: 1.把钱投到更需要的 ...

  3. Atitit.数据库事务隔离级别 attilax 总结

    Atitit.数据库事务隔离级别 1. 事务隔离级别的作用 1 2. 在的隔离级别 2 3. 常见数据库的默认管理级别 3 1. 事务隔离级别的作用 较低的隔离级别可以增强许多用户同时访问数据的能力, ...

  4. Docker 监控的一点想法

    目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路. 1.关于监控的内容 监控宿主机本身 监控宿主机本身还是比较简单的,同其他服务器监控类似,对c ...

  5. Jquery 事件执行两次

    js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡 阻止冒泡的方法并不止 return false 这一种,还有event.stopPropagation(),这两种方 ...

  6. getAttribute()方法

    http://www.imooc.com/code/1587 getAttribute()方法 通过元素节点的属性名称获取属性的值. 语法: elementNode.getAttribute(name ...

  7. RFID Hacking–资源大合集

    原文: http://www.freebuf.com/news/others/605.html http://www.proxmark.org/forum/index.php RFID破解神器官方论坛 ...

  8. EmWebAdmin 导航栏分析

    templates/gentelella/base.tpl <!DOCTYPE html> <html lang="en"> <!-- Smarty ...

  9. Android——android weight 属性(百度)

    LinearLayout 在androidUI布局中使用非常多,它其中有个很方便又很有意思的属性 weight ,这个属性理解起来不是那么简单的,而真正理解了又觉得非常简单! 下面就通过一个例子来说明 ...

  10. This表示当前对象

    This表示当前对象. Public void printNum(){ Int number=40: System.out.println(this.number); } 此时打印的是实例变量,而非局 ...