我们的系统配置了美国/东部时间,我们有一些必须在特定的欧洲/伦敦时间发生的计划任务。我们如何做到这一点,并确保我们的任务在白天时间变化生效时正确启动?
我们使用Quartz进行调度。目前,我们使用SimpleTrigger
而非CronTrigger
来安排任务。 docs表示CronTrigger应该工作 - 但我认为这假定计划时间和系统时间在同一时区。
答案 0 :(得分:4)
CronTrigger
确实可以更好地满足您的目的,因为您可以使用其setTimeZone
方法来定义解析触发器CronExpression
时将使用的时区。不,预定的时间和系统时间不需要在同一时区。所以,它应该工作。 (当然,请注意您链接到的文档中有关夏令时和crontriggers的注释。)
答案 1 :(得分:2)
CronTrigger
只要您使用正确的时区构建它就应该没问题 - 您可以使用CronScheduleBuilder.inTimeZone
确保时区。至少那是我对文档的解释......
答案 2 :(得分:0)
您也可以使用SimpleTrigger,但是您必须注意构建日期以用作触发器的startTime属性(在所需时区中构建该日期)。