论坛首页 入门技术论坛

Spring基于java.util.Timer提供的任务调度能否设置动态定时任务

浏览 4319 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-08-09  
由客户制定每次定时任务的间隔时间,我现在想用Timer提供的任务调度来实现,不知能否实现?如何实现?
   发表时间:2007-08-11  
终于找到了解决方法了:
是这样的,客户有个需求是可以自己修改任务的间隔时间的!(这个值是设置到数据库中的),因为SimpleTriggerBean必须设置repeatInterval属性,所以设置其一个默认值

配置如下:
    <bean id="ScheduleAction" class="com.server.business.cms.ScheduleAction">          
        <property name="scheduler" ref="schedulerFactory"/>      
    </bean> 
     
    <bean id="ScheduleEngineFactory" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
        <property name="targetObject" ref="SchedulerEngine"/> 
        <property name="targetMethod"> 
             <value>run</value> 
        </property> 
        <property name="concurrent" value="false"/> 
    </bean> 
     
    <bean id="ScheduleActionTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">          
        <property name="jobDetail"> 
            <ref bean="ScheduleEngineFactory"></ref> 
        </property>     
        <property name="startDelay"> 
            <value>80000</value> 
        </property> 
        <property name="repeatInterval"> 
            <value>80000</value> 
        </property> 
    </bean> 
     
    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">          
        <property name="triggers">              
            <list>             
                <ref bean="ScheduleActionTrigger"/>              
            </list>          
        </property> 
    </bean>


把schedulerFactory注入ScheduleInfoAction,
这样每次需要修改间隔时间时,就可以通过ScheduleInfoAction接口的scheduler设置间隔时间了,
但总感觉到有点笨拙,现在必须在程序启动时通过ScheduleInfoAction的scheduler设置数据库中的间隔时间,为什么repeatInterval不能通过继承SimpleTriggerBean复写getRepeatInterval方法去设置呢?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics