重置 ScheduledExecutorService 的 "reference time"
reset the "reference time" of ScheduledExecutorService
我正在使用 ScheduledExecutorService 每 x 秒启动多个任务
例如
ScheduledExecutorService schedules;
schedules.scheduleAtFixedRate(new UpdateTask(), 0, 10, TimeUnit.SECONDS);
完美运行,除非系统更改日期 "back in time"。因为我们有一个无电池系统,我们的系统以错误的日期开始,并在稍后从其他系统获得正确的时间。
如果他们将来得到正确的时间,没问题。如果他们获得过去的时间,则计划任务不再 运行。
是否要重新启动或重置时间表,以便它们从新的更正时间开始计数?
正如 kTT 提到的,这是 64 位的问题 Java
Java scheduler which is completely independent of system time changes
所以没有解决,感谢@kTT 和@YoK!
我正在使用 ScheduledExecutorService 每 x 秒启动多个任务
例如
ScheduledExecutorService schedules;
schedules.scheduleAtFixedRate(new UpdateTask(), 0, 10, TimeUnit.SECONDS);
完美运行,除非系统更改日期 "back in time"。因为我们有一个无电池系统,我们的系统以错误的日期开始,并在稍后从其他系统获得正确的时间。
如果他们将来得到正确的时间,没问题。如果他们获得过去的时间,则计划任务不再 运行。
是否要重新启动或重置时间表,以便它们从新的更正时间开始计数?
正如 kTT 提到的,这是 64 位的问题 Java Java scheduler which is completely independent of system time changes
所以没有解决,感谢@kTT 和@YoK!