java - 在 Java Scheduler Quartz Cron 中设置多个时区

标签 java cron timezone quartz-scheduler

我需要在午夜运行 CRON,它会自动为我公司的员工分配一些定期任务。我面临的情况是,我的公司基本上在美国各地都有办事处,有超过 1 个时区。所以基本上我希望这项工作在特定时区完成。另外,我的服务器按 UTC 运行。

如果我将 EDT 设置为基准时区(比 UTC 晚 4 小时)并将 CRON 设置为在午夜触发,则 CRON 时间将为

0 0 4 * * ?

我认为可能的方式是,我将其设置为在以下时间触发 7 次,而不是只设置一次:

0 0 4 * * ? [EDT]
0 0 5 * * ? [CDT]
0 0 6 * * ? [MDT]
0 0 7 * * ? [PDT]
0 0 8 * * ? [AKDT]
0 0 9 * * ? [HADT]
0 0 10 * * ? [HST]

因此,一旦其中任何一个被触发,它就会检查我的哪些办公室在这个时区内并完成这项工作。

我相信这可能有效,但除此之外还有其他选择吗? 另外,我需要修复夏令时,我不太确定我想怎么做。

最佳答案

我认为最简单的方法可能是有一个每小时运行一次的作业,然后遍历所有办公室,并找到现在在晚些时候运行的任何一个上次运行作业的时间。 (当然,您需要维护它以及办公室的时区。)这将为您解决 DST 问题,并且还可以应对调度程序停机一段时间的情况 - 下一次出现时,它会“ catch ”它错过的所有办公室。

关于java - 在 Java Scheduler Quartz Cron 中设置多个时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257428/

相关文章:

linux - 从 plesk 运行 cronjobs

mysql - iOS - mySQL (apache) 和 iOS (NSDate) 之间时间戳的正确格式

java - 使用 pcap4J 解密 HTTPS 数据包

Java Letter 将 arraylist 更改为不带逗号但包含空格的字符串

youtube - 使用youtube-dl上传视频后,如何从 channel 下载youtube视频?

CakePHP:为什么我的缓存文件在过期时会导致巨大的峰值?

javascript - 如何告诉 JavaScript Date 从哪里获取 TimezoneOffset?

python - Django:时区支持处于事件状态时的原始日期时间(sqlite)

java - 有没有办法增加从 NetBeans 启动的应用程序中的虚拟内存?

java - Netty客户端没有收到Server发送的完整数据