Как сказать ScheduledExecutorService игнорировать перекрывающиеся выполнения после выхода компьютера из режима ожидания / гибернации

У меня есть нить, отвечающая за периодическое обновление некоторых кеш-ответов на запросы удаленных сервисов каждые 10-15 минут.

Проблема заключается в том, что, когда клиентский компьютер выходит из режима сна, задача обновления выполняет время ожидания / период обновления вместо одного раза.

Это не перегрузка сервера или что-то еще, но это неэффективно. Как я могу предотвратить это?

1 ответ

Решение

Предполагая, что задача запланирована с фиксированной скоростью через ScheduledExecutorService, измените задачу на задачу с автоматическим планированием. Таким образом, всегда есть только 1 задача, ожидающая выполнения.

Другие вопросы по тегам