Java Spring中Quartz调度器详解及实例

网友投稿 319 2023-06-10


Java Spring中Quartz调度器详解及实例

一、Quartz的特点

* 按作业类的继承方式来分,主要有以下两种:

1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式

2.作业类不继承org.springframework.scheduling.quartz.QuartzJobBean类的方式

注:个人比较推崇第二种,因为这种方式下的作业类仍然是POJO。

* 按任务调度的触发时机来分,主要有以下两种:

1.每隔指定时间则触发一次,对应的调度器为org.springframework.scheduling.quartz.SimpleTriggerBean

2.每到指定时间则触发一次,对应的调度器为org.springframework.scheduling.quartz.CronTriggerBean

注:这两种触发方式均可以跟两种作业继承方式相互组合来使用。

下面简单演示一下在spring对Quartz的用法。

二、作业类继承org.springframework.scheduling.quartz.QuartzJobBean类,每到指定时间则触发一次

1.编写作业类

package bean.jobDetailBean;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.springframework.scheduling.quartz.QuartzJobBean;

public class Job1 extends QuartzJobBean {

private int timeout;

private static int i = 0;

//调度工厂实例化后,经过timeout时间开始执行调度

public void setTimeout(int timeout) {

this.timeout = timeout;

}

/**

* 要调度的具体任务

*/

@Override

protected void executeInternal(JobExecutionContext context)

throws JobExecutionException {

System.out.println("继承QuartzJobBean的方式-调度" + ++i + "进行中...");

}

}

2.配置作业类

&http://lt;/property>

3.配置作业调度的触发方式

4.配置调度工厂

5.开启调度

package test;

import org.springframework.beans.factory.BeanFactory;

import ormavAbg.springframework.context.support.ClassPathXmlApplicationContext;

public class ScheduleTest {

public static void main(String[] args){

BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml");

}

}

三、作业类不继承org.springframework.scheduling.quartz.QuartzJobBean类,每隔指定时间则触发一次

1.编写作业类

package bean.jobDetailBean;

public class Job2 {

private static int i = 0;

public void doJob2() {

System.out.println("不继承QuartzJobBean方式-调度" + ++i + "进行中...");

}

}

2.配置作业类

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

3.配置作业调度的触发方式

4.配置调度工厂

5.开启调度

package test;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ScheduleTest {

public static void main(String[] args){

BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml");

}

}

简单说明spring自带调度器的例子。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入理解Spring Boot属性配置文件
下一篇:简单谈谈gulp
相关文章

 发表评论

暂时没有评论,来抢沙发吧~