我的任务是按照用户从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表达式.