当前位置: 首页 > 知识库问答 >
问题:

如何更改CronTrigger中的cron表达式(石英2.2,spring 4.1)

雍河
2023-03-14

我有点卡在最新的石英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>
...

现在,我需要在运行时更改它的cronExpression,而且这并不像我想象的那么简单。我无法引用bean并更改属性,因为它是一个提供CronTrigger接口的工厂,而CronTrigger接口不再具有setCronExpression方法,它已经变得不可变。然后我就可以简单地从上下文中找出一个触发器并设置它的新cron表达式。它工作了很多年,直到升级变得不可避免。

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

共有1个答案

弓晔
2023-03-14

cronTriggerFactoryBean.setCronExpression()方法会起作用吗?

 类似资料:
  • 嗨,我对“石英时间表”很陌生。我有一个cron表达式 “0 0/24**?”--这意味着每个任务将每24小时执行一次。对吗? 如果是,时间表何时开始。例如,如果我在上午10点启动服务器,调度程序将每天上午10点执行。

  • 我正在尝试在特定时间调用API。但有时api调用可能会失败,所以我制定了一个逻辑来检查api调用何时失败。 确认api调用失败后,我想将@Schedulercron表达式从当前cron表达式更改为15分钟后。 如何动态更改cron表达式?? 下面是我的API调用代码。

  • 问题内容: 我正在尝试创建在特定日期每2周运行一次的Quartz cron表达式 例如 星期一每两周一次 并使用以下表达式 但以某种方式我得到以下错误 没有支持指定多个“第n”天。 问题答案: 对于常规的cron作业,这也是非常困难的事情,我认为无法通过“常规” cron表达式来实现。 您可以完全跳过cron并使用每2周执行一次的 触发器

  • 问题内容: 我能够在applicationContext.xml中创建taskScheduler,并且根据该属性定期触发我的工作。 我想在调度程序启动后更改此表达式(触发时间),这意味着JavaEE应用程序正在运行。 使用Spring 3.XX 问题答案: 其实我也遇到过同样的问题 我假设您需要从用户那里获取date(1-31),时间,星期几,调度程序的类型(每日,每月,每周)。 首先,您需要根据

  • 我有一些时间 现在的条件是,当JVM启动时,它将首先检查当前时间和给定时隙的持续时间。下面是检查时长的方法:- 例如,如果JVM在今天17PM开始,那么它将首先检查时隙,它将得到13PM到19PM之间的时隙,并且根据方法findNextSlotDuration将是2小时,因此调度器将在2小时后开始,即在19PM。另一种情况是,如果JVM今天在19小时00分29秒启动,那么它将得不到插槽,那么持续时