Как ограничить ScheduledExecutorService - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть следующий код, который вызывает задачу через каждые 20 минут, и она работает нормально. Теперь выше этого я хочу, чтобы это работало только между 0900 и 1800

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new CSDelightAlertTask(), 0, 20, TimeUnit.MINUTES);

Ответы [ 2 ]

4 голосов
/ 24 февраля 2012

Самое простое решение состоит в том, чтобы просто обернуть CSDelightAlertTask в оболочку, которая запускает базовую задачу, только если время между 0900 и 1800.

0 голосов
/ 24 февраля 2012

Если вы можете использовать внешнюю библиотеку, cron4j может помочь для такого рода комплексного планирования. Вероятно, не стоит, если это один раз.

...