Вам необходимо проверить, поддерживает ли используемая реализация сервера задачу запуска, подобную этой. Если он не поддерживает его или вы хотите быть независимым от сервера, то внедрите ServletContextListener
, чтобы зацепить запуск веб-приложения и использовать ScheduledExecutorService
для выполнения данное время и интервалы.
Вот базовый пример:
public class Config implements ServletContextListener {
private ScheduledExecutorService scheduler;
public void contextInitialized(ServletContextEvent event) {
scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new Task(), millisToNext1000, 1, TimeUnit.DAYS);
}
public void contextDestroyed(ServletContextEvent event) {
scheduler.shutdown();
}
}
Где Task
реализует Callable
и millisToNext1000
- количество миллисекунд до следующих 10:00. Вы можете использовать Calendar
или JodaTime для его вычисления. В качестве альтернативы, отличной от стандарта Java, вы также можете использовать Quartz .