Приостановить TimerTask до следующего выполнения - PullRequest
1 голос
/ 17 ноября 2011

Я использую TimerTask для запуска некоторых периодических задач, задача обрабатывает набор файлов.У меня есть требование, когда, если количество обрабатываемых файлов превышает заранее установленное ограничение, поток приостанавливает выполнение и ожидает следующего цикла, чтобы снова начать обработку файлов.Есть ли способ приостановить TimerTask до следующего периода выполнения, или мне нужно расширить класс TimerTask для достижения этой функциональности?Я видел, что есть метод TimerTask.cancel, но это отменит все дальнейшие выполнения этого потока.Я не хочу, чтобы это случилось.Я просто хочу, чтобы поток был приостановлен до следующего периода выполнения.Я не могу позволить себе переход на любой другой параллельный класс в Java, так как наша среда использует TimerTask, и я должен придерживаться его.

Любые предложения, указатели или советы приветствуются.

спасибо,

Аша

1 Ответ

1 голос
/ 18 ноября 2011

Один из подходов состоит в том, чтобы поместить задачи в BlockingQueue и разрешить TimerTask remove() и обрабатывать записи, пока очередь не опустеет или не будет достигнут предопределенный предел.Все оставшиеся записи будут находиться в очереди в ожидании следующего запланированного выполнения.

...