我在迁移到最新的quartz 2.2和spring 4.1时遇到了一些问题...以下是一个cron触发器,为了清晰起见,我省略了作业和其他细节:
...
<bean id="timeSyncTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="timeSyncJob"/>
<property name="startDelay" value="10000"/>
<property name="cronExpression" value="0 0 1 * * ? *"/>
</bean>
...
现在,我需要在运行时更改其,但这并不像我想象的那么简单。我无法引用bean并更改属性,因为它是一个工厂,提供了接口,该接口反过来不再具有方法,而是变成了不可变的。以前,我可以从上下文中找出触发器并设置其新的cron表达式。它在许多年里都运行得非常好,直到升级变得不可避免。
那么,今天我们如何完成这个简单的任务呢?完全迷失在文档和版本中...提前致谢!
CronTriggerFactoryBean
似乎没有准备修改cronExpression
。也许是有意的,CronTrigger
接口没有setCronExpression
方法。CronTriggerImpl.setCronExpression
也没有效果,不是吗? - Markus Pscheidt