2011-01-24 67 views
3

我的任务是使用用户从GUI指定的计划时间动态生成报告。在Spring中动态地使用相同的作业细节重新计划CronTriggerBean

我使用在我在弹簧的应用的应用上下文以下代码以每日生成报告上午06点。

<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.C

回答

1

我发现this线程从DB读取cron expr,然后重新安排作业。你只是不会从数据库中读取它,而是直接从GUI中传递它。

相关问题