其他分享
首页 > 其他分享> > 在Spring中使用相同的工作详细信息动态地重新计划CronTriggerBean

在Spring中使用相同的工作详细信息动态地重新计划CronTriggerBean

作者:互联网

我的任务是按照用户从GUI指定的预定时间动态生成报告.

我在春季在应用程序的应用程序上下文中使用以下代码来每天早上6点生成报告.

<bean name="scheduleRptJob" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass" value="com.secant.qatool.report.scheduler.ScheduleCroneJob"/>
</bean>

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="scheduleRptJob" />

        
    

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

我正在使用以下代码从控制器动态更改cron表达式.但这是行不通的.

    String time[] = rptScheduleTime.split(":");

    String hours = time[0];
    String minutes = time[1];

    String croneExp = " 00 " + minutes + " " + hours + " * * ? ";

    log.debug("CRONE EXP :: " + croneExp);

    cronTrigger.clearAllTriggerListeners();

    // Setting the crown expression.
    cronTrigger.setCronExpression(croneExp);

    Trigger[] triggers = {cronTrigger};

    // Code to pause and start the cron trigger.
    schedulerFactory.stop();
    schedulerFactory.setTriggers(triggers);
    schedulerFactory.start();

有人可以帮助我如何在动态时间上重新安排相同的工作.

谢谢,

-阿尼尔·库玛(Anil Kumar)

解决方法:

春季论坛上有一个与此相关的主题,它暗示他们找到了您的问题的解决方案:http://forum.springsource.org/showthread.php?t=31736

但是,您可以使用spring表达式语言每次从持有该值的对象中读取它,而不用手动更改文件中的cron表达式.

标签:scheduling,quartz-scheduler,crontab,spring
来源: https://codeday.me/bug/20191023/1913978.html