Quartz 没有 运行 jobs,当冬令时发生变化
Quartz does not run the jobs, when the winter time change occurs
在我们的系统中,有多个 quartz (quartz 2.2.2) 计划和作业,这些计划与这些计划相关联。
发生冬令时更改 (DST) 时出现此问题。冬令时更改将时间调回到 02:00 am 03:00 am(柏林)。
这意味着那天晚上 02:00 有 2 个小时。但是,quartz api 不支持夏令时。它会跳过凌晨 2 点,并在 03:00 时继续。在他们的 documentation 中,他们说, 处理它。
01:00 am - 正常工作
02:00 上午 - 跳过
02:00 上午 - 工作正常
03:00 上午 - 工作正常
在我们的系统中,我们没有机会在另一个时间设置定时器,必须触发作业。
我看了网上几乎所有的答案,都没有找到适合这个问题的解决方法。最合乎逻辑的答案(ron 的答案)是 this 但是,我无法扩展 CronExpression class,这是最终的。可能在以前的版本中还不是最终版本。
优雅与否,我正在等待(并感谢)所有可能的答案。
我已经用自己的混合解决方案解决了这个问题。
主要是在class完成了哪些作业(实现Job接口的那些),我一直在检查下一次作业什么时候触发。如果是 10 月的最后一个星期日 02:00 am(冬天的变化发生在 10 月的最后一个星期日),我用一个简单的触发器重新安排了工作(不受夏令时变化的影响) ,并序列化了原始触发器,在 03:00 上午之后,我再次使用原始 cron 触发器重新安排了作业。
我知道这不是理想的解决方案,但我认为这是解决此问题的最佳方案之一。
在我们的系统中,有多个 quartz (quartz 2.2.2) 计划和作业,这些计划与这些计划相关联。
发生冬令时更改 (DST) 时出现此问题。冬令时更改将时间调回到 02:00 am 03:00 am(柏林)。
这意味着那天晚上 02:00 有 2 个小时。但是,quartz api 不支持夏令时。它会跳过凌晨 2 点,并在 03:00 时继续。在他们的 documentation 中,他们说, 处理它。
01:00 am - 正常工作
02:00 上午 - 跳过
02:00 上午 - 工作正常
03:00 上午 - 工作正常
在我们的系统中,我们没有机会在另一个时间设置定时器,必须触发作业。
我看了网上几乎所有的答案,都没有找到适合这个问题的解决方法。最合乎逻辑的答案(ron 的答案)是 this 但是,我无法扩展 CronExpression class,这是最终的。可能在以前的版本中还不是最终版本。
优雅与否,我正在等待(并感谢)所有可能的答案。
我已经用自己的混合解决方案解决了这个问题。
主要是在class完成了哪些作业(实现Job接口的那些),我一直在检查下一次作业什么时候触发。如果是 10 月的最后一个星期日 02:00 am(冬天的变化发生在 10 月的最后一个星期日),我用一个简单的触发器重新安排了工作(不受夏令时变化的影响) ,并序列化了原始触发器,在 03:00 上午之后,我再次使用原始 cron 触发器重新安排了作业。
我知道这不是理想的解决方案,但我认为这是解决此问题的最佳方案之一。