• 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或其他容器。

  • 相关阅读:
    深度学习
    !gcc !vi
    条件、循环及其他语句
    当索引行不通时
    我的排班日期
    Linux使用storcli工具查看服务器硬盘和raid组信息
    storcli64和smartctl定位硬盘的故障信息
    Shell-四剑客
    iostat
    /VAR/LOG/各个日志文件分析
  • 原文地址:https://www.cnblogs.com/GotoJava/p/6093445.html
Copyright © 2020-2023  润新知