如何在 CronTrigger (quartz 2.2, spring 4.1) 中更改 cron 表达式 [英] How to change cron expression in CronTrigger (quartz 2.2, spring 4.1)

查看:39
本文介绍了如何在 CronTrigger (quartz 2.2, spring 4.1) 中更改 cron 表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在迁移到最新的quartz 2.2 和spring 4.1 时遇到了一些困难……这是一个cron 触发器,为了清楚起见,我省略了工作和其他内容:

I'm a bit stuck migrating to latest quartz 2.2 and spring 4.1... Here's a cron trigger, I omit the job and other fluff for clarity:

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

现在,我需要在运行时更改它的cronExpression,并没有我想象的那么简单.我无法引用 bean 并更改属性,因为它是一个提供 CronTrigger 接口的工厂,而该接口又不再具有 setCronExpression 方法,它已变得不可变.在我可以简单地从上下文中找出触发器并设置其新的 cron 表达式之前.多年来一直运行良好,直到升级变得不可避免.

Now, I need to change its cronExpression at run time, and it's not as simple as I thought. I can't reference the bean and change the property because its a factory giving CronTrigger interface which in turn doesn't have setCronExpression method any longer, it has become immutable. Before I could simply fish out a trigger from the context and set its new cron expression. It worked very well for many years, until the upgrade become unavoidable.

那么,我们今天如何完成这个简单的任务?在文档和版本中完全丢失.. 提前致谢!

So, how do we accomplish this simple task today? Totally lost in documentations and versions.. Thanks in advance!

推荐答案

CronTriggerFactoryBean.setCronExpression() 方法有效吗?

这篇关于如何在 CronTrigger (quartz 2.2, spring 4.1) 中更改 cron 表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆