quartz定时调度框架的使用

来源:互联网 发布:web前端好还是java好 编辑:程序博客网 时间:2024/06/05 23:44

首先呢,很多项目都离不开定时调度,所以有了quartz这个框架。

参数名

类型

备注

name

String

任务的名称,必须

group

String

任务所在组,默认为DEFAULT

jobClass

Class

任务的实现类,必须

description

String

描述

jobDataMap

JobDataMap

用来给作业提供数据支持的数据结构

volatility

Boolean

重启应用之后是否删除任务的相关信息,默认false

durability

Boolean

任务完成之后是否依然保留到数据库,默认false

shouldRecover

Boolean

应用重启之后时候忽略过期任务,默认false

jobListeners

Set

监听器

在此引用别人的参数

第一步是配置,在框架中的配置文件中进行配置job(作业)

    <bean id="FileJob"
        class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.CopyFileUrl" />//这里的vaule是一个继承了QuartzJobBean的类,里面写的就是你定时调度的任务
        <property name="durability" value="true" />
    </bean>

然后再配置Trigger(触发器)

    <bean id="FileTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">//这个是定时调度
        <property name="jobDetail" ref="FileJob" />//这里的ref就是上面的job的id
        <property name="cronExpression" value="0 0/5 * * * ?" />
    </bean>

<bean id="FileJobTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">//这个是循环调度<property name="jobDetail" ref="FileJob" /><property name="startDelay" value="10000" />//开启服务器10秒后执行<property name="repeatInterval" value="80000" />//之后每隔80秒执行一次</bean>


          0 5/10 * * * ?是秒,分,时,日,月,年
每天的每个小时从5分开始5,15,25,35,45,55都执行一次,以此类推

最后再配置quartz的调度器

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

      <property name="triggers">

         <list>

           <ref bean="FileTrigger" />

          <ref bean="XXTrigger" />可以在这里写多个trigger

            </list>
        </property>
    </bean>  



原创粉丝点击