石英弹簧集成调度,我们可以动态设置cron触发器

时间:2013-05-30 05:42:53

标签: java spring quartz-scheduler

首先我的应用程序将cron详细信息从浏览器保存到数据库中,稍后调度应该通过获取详细信息来获取。我们如何在applicationcontext中动态设置cron表达式。 当我启动应用程序时,调度程序启动并运行该作业实际上我不希望这种情况发生。我希望在用户从浏览器获取值后,根据应触发的数据库值

运行作业

的applicationContext.xml

<bean id="JobA" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.JobCSVfile" />
        <property name="jobDataAsMap">
            <map>
                <entry key="timeout" value="5" />
            </map>
        </property>
    </bean>
    <bean id="cronTriggerJobA" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="JobA" />
        <property name="cronExpression" value="0/5 * * * * ?" />
    </bean>

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobDetails"> <list> <ref bean="JobA" /> </list> </property>

        <property   <list>
                <ref bean="cronTriggerJobA" />

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

1 个答案:

答案 0 :(得分:1)

您可以将CronSchedulerBean的属性“autoStart”设置为false,这意味着应用程序启动后不会执行Cron作业。 一旦准备好了适当的参数,就可以启用cron job。

请参阅此api:http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/scheduling/quartz/SchedulerFactoryBean.html#setAutoStartup(boolean)