石英硬件时钟

时间:2010-04-27 14:23:30

标签: java time quartz-scheduler

我在我的项目中使用quartz并且有一个cron作业。 我给出触发器(CronTrigger)作为运行参数的cron表达式与pc的硬件时钟相似。任何想法如何告诉工作看看软件时钟呢?

例如我有一个工作运行了一年,它运行正好在晚上10点,有一天我们切换到夏令时,我希望自动更新cron工作。

罗马

2 个答案:

答案 0 :(得分:1)

“夏令时”是指改为Daylight_saving_time

该案件将自动处理。

您唯一需要注意的是在实际轮班期间安排的工作。

在前移中,时间从1am (std)变为2am (std)1am (dst)。 计划在凌晨1点到凌晨2点之间运行的工作需要确保它们不会运行两次。

转回可能会产生相反的效果。时间从1am (dst)2am (dst)3am (std)。根据Quartz的实现方式,它可以跳过间隔中的作业,也可以在班次后的间隔内运行所有作业。

如果这是绝对必须运行的工作,请在班次窗口之外安排工作(班次时间+/- 1小时)。

答案 1 :(得分:1)

简单,始终使用UTC 表示服务器上的系统时间(和时区)

我很认真,这涉及夏令时规则等问题,有助于确保近乎单调的时间增加(即时间不会“向后跳”,打破时间相关软件的许多假设),以及跨时区的服务器和/或用户(即地理上分布的计算机和/或用户)。

*)我会忽略leap seconds这种情况。

由于这似乎是计算机系统和操作系统相关工具(即cron)的问题,我认为此问题不适合StackOverflow.com,请考虑将其移至{{3} }}