当前位置: 代码迷 >> Web前端 >> Quartz兑现的Web schedule (Spring计划任务)
  详细解决方案

Quartz兑现的Web schedule (Spring计划任务)

热度:745   发布时间:2013-07-08 14:13:00.0
Quartz实现的Web schedule (Spring计划任务)

项目里使用Quartz实现的Web schedule,

主要是引入jar包,完成基本配置。

首先配置需要定时执行的Class和Class中定时执行的method:

property name="targetObject"???? ref对应的Class

property name="targetMethod"?? ref对应的Method

<bean id="exportJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
       <property name="targetObject">
           <ref bean="exportFileManager" />
       </property>
       <property name="targetMethod">
           <value>fileExport2</value>
       </property>
 </bean>

exportFileManager 我已在Spring文件中配置:

?

    <bean id="exportFileManager" parent="managerProxyTemplate">
        <property name="target">
            <bean class="com.wonders.mywebapp.infobackup.service.ExportFileManager">
                <property name="efilesDAO" ref="efilesDao"/>
                <property name="personInfoDao" ref="personInfoDao"/>
            </bean>
        </property>
    </bean>

然后配置method执行的时间:

property name="jobDetail"? ref 刚才配置的 jobDetail

?????property name="cronExpression"?? ref 定时的时间

 <bean id="cronTrigger"
     class="org.springframework.scheduling.quartz.CronTriggerBean">
     <property name="jobDetail">
     <ref bean="exportJobDetail" />
     </property>
     <property name="cronExpression">
         <value>0 46 19 * * ?</value>
     </property>
    </bean> 
    

?最后把上一步定义的triggers ,统一交给schedule管理:、

使用<list>是因为一个配置文件 可以 定义多个定时执行的Method,只需要把每个trigger 加入list中,即可

 <bean
     class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
     <property name="triggers">
     <list>
         <ref local="writeTrigger" />
         <ref local="cronTrigger" />
     </list>
     </property>
    </bean>

最后把本xml加入总的spring配置文件中,完成配置。

1 楼 jinnianshilongnian 1 小时前  
之前也是使用quartz,不过目前转到了spring task;这样减少了一个依赖。
https://github.com/zhangkaitao/es/blob/master/web/src/main/resources/spring-config-task.xml

不过要比较精确的话还是Quartz吧。
  相关解决方案