zoukankan      html  css  js  c++  java
  • Spring定时任务Quartz配置

    第一种,作业类继承自特定的基类:org.springframework.scheduling.quartz.QuartzJobBean。

    第一步:定义作业类

     1 import org.quartz.JobExecutionContext;  
     2 import org.quartz.JobExecutionException;  
     3 import org.springframework.scheduling.quartz.QuartzJobBean;  
     4 public class Job1 extends QuartzJobBean {  
     5   
     6 private int timeout;  
     7 private static int i = 0;  
     8 //调度工厂实例化后,经过timeout时间开始执行调度  
     9 public void setTimeout(int timeout) {  
    10 this.timeout = timeout;  
    11 }  
    12   
    13 /** 
    14 * 要调度的具体任务 
    15 */  
    16 @Override  
    17 protected void executeInternal(JobExecutionContext context)  
    18 throws JobExecutionException {  
    19   System.out.println("定时任务执行中…");  
    20 }  
    21 }  

     第二步:spring配置文件中配置作业类JobDetailBean

    Xml代码 
    <bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean">  
    <property name="jobClass" value="com.gy.Job1" />  
    <property name="jobDataAsMap">  
    <map>  
    <entry key="timeout" value="0" />  
    </map>  
    </property>  
    </bean>  

     说明:org.springframework.scheduling.quartz.JobDetailBean有两个属性,jobClass属性即我们在java代码中定义的任务类,jobDataAsMap属性即该任务类中需要注入的属性值。

    第三步:配置作业调度的触发方式(触发器)

    Quartz的作业触发器有两种,分别是

    org.springframework.scheduling.quartz.SimpleTriggerBean

    org.springframework.scheduling.quartz.CronTriggerBean

    第一种SimpleTriggerBean,只支持按照一定频度调用任务,如每隔30分钟运行一次。

    配置方式如下:

    Xml代码  收藏代码
    1. <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
    2. <property name="jobDetail" ref="job1" />  
    3. <property name="startDelay" value="0" /><!-- 调度工厂实例化后,经过0秒开始执行调度 -->  
    4. <property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 -->  
    5. </bean>  

    第二种CronTriggerBean,支持到指定时间运行一次,如每天12:00运行一次等。

    配置方式如下:

    Xml代码  收藏代码
    1. <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
    2. <property name="jobDetail" ref="job1" />  
    3. <!—每天12:00运行一次 -->  
    4. <property name="cronExpression" value="0 0 12 * * ?" />  
    5. </bean>  

     关于cronExpression表达式的语法参见附录。

    第四步:配置调度工厂 

    Xml代码  收藏代码
    1. <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
    2. <property name="triggers">  
    3. <list>  
    4. <ref bean="cronTrigger" />  
    5. </list>  
    6. </property>  
    7. </bean>  

     说明:该参数指定的就是之前配置的触发器的名字。

    第五步:启动你的应用即可,即将工程部署至tomcat或其他容器。

  • 相关阅读:
    java使用jacob实现word转pdf
    解决 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
    tp框架基本sql语句查询与链式查询
    id和class的区别
    查找算法
    排序算法
    [转]微信小程序开发:从小白开发出通过自拍预测年龄和颜值的小程序
    [转]天天生鲜,html效果布局
    利用乐观锁及redis解决电商秒杀高并发基本逻辑
    Python3.6.0安装
  • 原文地址:https://www.cnblogs.com/GotoJava/p/6093445.html
Copyright © 2011-2022 走看看