Как сказать ScheduledExecutorService игнорировать перекрывающиеся выполнения после выхода компьютера из режима ожидания / гибернации
У меня есть нить, отвечающая за периодическое обновление некоторых кеш-ответов на запросы удаленных сервисов каждые 10-15 минут.
Проблема заключается в том, что, когда клиентский компьютер выходит из режима сна, задача обновления выполняет время ожидания / период обновления вместо одного раза.
Это не перегрузка сервера или что-то еще, но это неэффективно. Как я могу предотвратить это?
1 ответ
Решение
Предполагая, что задача запланирована с фиксированной скоростью через ScheduledExecutorService, измените задачу на задачу с автоматическим планированием. Таким образом, всегда есть только 1 задача, ожидающая выполнения.