Spring集成Quartz定时任务

本文介绍如何使用Spring框架集成Quartz实现任务调度,包括Job定义、Trigger触发器配置及Scheduler调度器整合。通过示例展示了MethodInvokingJobDetailFactoryBean与JobDetailFactoryBean定义Job的方法,以及SimpleTriggerFactoryBean和CronTriggerFactoryBean创建触发器的过程。

一个任务调度器最基本的三个元素是

  • Job(or Task):需要定时处理的事情

  • Trigger: 事件触发时间点(一次性的、固定周期性的、像Linux Cron Jobs 灵活配置的)

  • Scheduler: 调度器

定义一个Job:

  • 使用 MethodInvokingJobDetailFactoryBean

<bean id="smsJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="sysSMSTaskService"/>
    <property name="targetMethod" value="sendSMS"/>
    <!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
    <property name="concurrent" value="false"/>
</bean>

  • 使用 JobDetailFactoryBean
定义一个触发器
  • 简单触发器,使用 SimpleTriggerFactoryBean
<bean id="simpleTrigger"  class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">  
   <property name="jobDetail" ref="simpleJobDetail" />  
	   <property name="startDelay" value="1000" />  
   <property name="repeatInterval" value="2000" />  
</bean>
  • 计划触发器,使用 CronTriggerFactoryBean
<bean id="cronTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
    <property name="jobDetail" ref="firstComplexJobDetail" />  
    <!--<property name="cronExpression" value="0/5 * * ? * SAT-SUN" />-->  
    <property name="cronExpression" value="0/5 * * ? * *" />  
      
</bean>  

配置 Quartz 调度器的 SchedulerFactoryBean

<bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
    <property name="jobDetails">  
        <list>  
            <ref bean="simpleJobDetail" />  
            <ref bean="firstComplexJobDetail" />  
            <ref bean="secondComplexJobDetail" />  
        </list>  
    </property>  
  
    <property name="triggers">  
        <list>  
            <ref bean="simpleTrigger" />  
            <ref bean="cronTrigger" />  
            <ref bean="secondCronTrigger" />  
        </list>  
    </property>  
</bean>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值