1

这有点与Quartz.NET 有关 - 这个单元测试不应该通过吗?,但不完全是。

我在 GMT-4 有一个服务器,在 GMT-7 有一个。他们都使用 Quartz.NET v2.1.2.400。我需要两台服务器基于 GMT 同时做同样的事情(在一点公差内),使用这个 cron 字符串:

0 0 5,12,17 * * ?

但是,一台服务器在另一台服务器之前执行此作业。我需要它们保持同步。我正在使用下面的代码。我认为 Quartz 在内部计算 GMT 时间/时间表,但在外部计算本地时间。我希望它一直是格林威治标准时间。我怎样才能做到这一点?

我当前的代码如下所示:

var trigger = new CronTriggerImpl(mytriggername) { CronExpressionString = cronString };
var job = new JobDetailImpl(jobName, jobType);
Quartz.ScheduleJob(job, trigger);

谢谢。

4

1 回答 1

2

setTimeZoneCronTrigger 的 java 实现中有一个方法, TimeZone.NET 实现中有一个属性。

然后,您可以将两个匹配项上的触发器的时区设置为 UTC。

当然,这只有在你的机器上的服务器时钟以某种方式同步时才有效,使用 NTP 或类似的方式。

于 2013-06-04T13:44:34.207 回答