У меня есть веб-приложение, которое синхронизируется с центральной базой данных четыре раза в час. Процесс обычно занимает 2 минуты. Я хотел бы запустить этот процесс в виде потока в X: 55, X: 10, X: 25 и X: 40, чтобы пользователи знали, что в X: 00, X: 15, X: 30 и X: 45 у них есть чистая копия базы данных. Это просто управление ожиданиями. Я прошел через исполнителя в java.util.concurrent
, но планирование выполняется с помощью scheduleAtFixedRate
, который, как я считаю, не дает никаких гарантий относительно того, когда это действительно выполняется в терминах часов. Я мог бы использовать первую задержку для запуска Runnable
, чтобы первая была близка к времени запуска и расписанию для каждых 15 минут, но, похоже, со временем она будет расходиться. Есть ли более простой способ запланировать запуск потока за 5 минут до каждого квартала?