У меня есть приложение на стороне сервера, где клиенты могут запросить перезагрузку конфигурации. Если клиент запрашивает перезагрузку конфигурации, это не должно выполняться немедленно, но с задержкой в 1 минуту. Если другой клиент также просит перезагрузить конфигурацию в одну минуту, этот запрос следует игнорировать.ScheduledExecutorService - проверить, завершена ли запланированная задача.
Моя идея заключается в том, чтобы запланировать задачу с ScheduledExecutorService как:
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.schedule(new LoadConfigurationTask(), 1, TimeUnit.MINUTES);
public class LoadConfigurationTask Runnable {
public void run() {
// LoadConfiguration
}
}
Как я могу проверить, если LoadConfigurationTask было запланировано, но еще не выполнена, чтобы иметь возможность игнорировать дальнейшие запросы, пока конфигурация не будет перезагружен?
Что делать, если перезагрузка задачи конфигурации запущена - следует ли также игнорировать другой запрос? Что делать, если задача завершена 1 миллисекунда назад? –
Нет, если он запущен, новая задача должна быть запланирована. – markus