Я хотел бы запланировать периодическую задачу, выполняемую каждые X часов. У меня есть служба, написанная на Java, и я думал создать длинный фоновый поток, который работает вечно до тех пор, пока служба будет работать. Как я могу гарантировать, что мы выполняем задачу один раз каждые X часов? Должен ли я беспокоиться о том, что часы у меня на ходу? Я знаю, что частота тиков часов может измениться, если процессоры работают.Планирование периодических задач и дрейфа часов
Редактировать: Я думал о добавлении компонента в конфигурацию пружины, чтобы развернуть поток, который будет периодически выполнять мою задачу.
Насколько важно, чтобы задача была запущена в течение часа? Или он выполняется каждые 60 минут и сколько времени приемлемо между ними (например, нормально ли исполнять в момент времени 0 минут, время 59.9 минут и время 120.3 минут)? –
Еще один фон - задачу не нужно запускать в час. У нас есть SLA для обновления отчета один раз каждые 24 часа, поэтому, если примерно каждые 24 часа (выключение на несколько секунд или даже на пару минут является приемлемым), нам нужно отпустить пакет запросов на какую-то услугу. – mewsicalcat
Учитывая, что мы заботимся только об истекшем времени между задачами, нужно ли перекосить часы? – mewsicalcat