Мне нужно запланировать выполнение задачи через фиксированный интервал времени. Как я могу это сделать с поддержкой больших интервалов (например, каждые 8 часов)?
В настоящее время я использую java.util.Timer.scheduleAtFixedRate. java.util.Timer.scheduleAtFixedRate Поддерживает большие временные интервалы?
Вам следует ознакомиться с Quartz - это Java-фреймворк, который работает с редакциями EE и SE и позволяет определять задания для выполнения в определенное время
Ответ 3
Попробуйте этот способ ->
Сначала создайте класс TimeTask, который запускает вашу задачу, это выглядит следующим образом:
// Start running the task on Monday at 15:40:00, period is set to 8 hours // if you want to run the task immediately, set the 2nd parameter to 0 time.schedule(newCustomTask(), calendar.getTime(), TimeUnit.HOURS.toMillis(8)); }
Ответ 4
Используйте Google GuavaAbstractScheduledService, как указано ниже:
Если у вас есть другие подобные службы, то регистрация всех служб в ServiceManager будет полезна, поскольку все службы можно запускать и останавливать вместе. Подробнее о ServiceManager читайте здесь.