У меня есть приложение Spring Boot с различными планировщиками, использующими аннотацию @Scheduled. Некоторые расписания настраиваются с использованием fixedRate, другие - cron. Расписания fixedRate работают нормально, но я заметил, что за последний месяц фактическое время срабатывания расписаний cron будет варьироваться на 1-2 часа каждый день.
то есть работа с настройкой cron
@Scheduled(cron = "0 0 2 * * *")
сработает в 3:00 вместо 2:00. Это происходит не каждый день. Он будет работать в одно и то же время несколько дней подряд, затем что-то произойдет, и он отключается еще на час при каждом запуске, пока я не перезапущу приложение.
Системное время на сервере точное, у меня тут все без идей. Кто-нибудь сталкивался с этим раньше?
ИЗМЕНИТЬ 1
Я ввел некоторый журнал, чтобы определить, не выполнялись ли задания с ошибками с одним и тем же интервалом, и результаты кажутся случайными. Вот время начала и окончания вышеупомянутого задания cron за три дня:
Format: Calendar.getInstance().getTime() (System.currentTimeMillis())
Start: Sat Oct 21 03:14:15 CDT 2017 (1508573655778)
End: Sat Oct 21 03:22:24 CDT 2017 (1508574144708)
Start: Sun Oct 22 02:26:58 CDT 2017 (1508657218774)
End: Sun Oct 22 02:35:12 CDT 2017 (1508657712492)
Start: Mon Oct 23 02:00:03 CDT 2017 (1508742003072)
End: Mon Oct 23 02:08:11 CDT 2017 (1508742491493)