提问人:Lukas 提问时间:11/21/2022 更新时间:11/21/2022 访问量:168
Spring @Scheduled cron 作业与 Instant.now() 结合使用
Spring @Scheduled cron job in combination with Instant.now()
问:
在 Spring 中,我使用标准的 CRON 作业调度,每 10 分钟进行一次业务级别测量,在此示例中
@Async
@Scheduled(cron = "0 0/10 * * * ?")
public void takeMeasurements() {
Instant dateTimeNow = Instant.now();
// Business impl of measurements taking & storing into DB
}
在多个客户环境(Win、MacOS、Linux)下,我在docker中作为SpringBoot容器运行时对此实现没有问题,但我观察到在一个Win10 Enterprise环境中,当CRON作业触发时调用的时间戳具有“过去”的时间,例如 本应在 12:00:00 被解雇的工作。Instant.now()
11:59:59:998
我可以用一些可接受的偏差范围来处理这种情况(就我的目的而言,可以进行 +-30 的“四舍五入”),但对于某些人/场景来说,它可能不是。
这背后的问题在哪里?
CRON不是使用与使用的相同的机器时钟吗?java.time.Instant
答: 暂无答案
评论