spring之在 Spring 中使用相同的作业详细信息动态重新安排 CronTriggerBean

myhome 阅读:20 2024-11-24 20:56:43 评论:0

我的任务是根据用户从 GUI 指定的计划时间动态生成报告。

我在 Spring 应用程序的应用程序上下文中使用以下代码每天早上 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> 

我正在使用以下代码从 Controller 动态更改 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(); 

有人可以帮我如何用动态时间重新安排同一个工作。

谢谢,

-阿尼尔·库马尔.C

请您参考如下方法:

spring 论坛中有一个关于此的主题,他们似乎找到了解决您问题的方法:http://forum.springsource.org/showthread.php?t=31736

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


标签:Spring
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号