Применение последовательности в Cron4J - PullRequest
1 голос
/ 23 января 2012

Я использую cron4j, чтобы планировать выполнение задач каждые 30 минут.Однако я не хотел бы запускать второй экземпляр выполнения задачи, если предыдущий экземпляр той же задачи все еще выполняется.Я знаю, что в Executor есть методы, такие как isLive () и join (), но не уверен, что их можно использовать для достижения цели.

1 Ответ

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

Полагаю, вы хотели бы добиться последовательной обработки. В этом случае я предлагаю использовать очередь в качестве «канала» между 2 задачами cron4j, rask, который создает параметры процесса, и задачей, которая обрабатывает параметры.

cron4j (задача 1, 30-минутный интервал), который подготавливает параметры, помещает их в -----> очередь <----- cron4j (задача 2, возможно, 10-минутный интервал) считывает параметры из этого и обрабатывает их соответственно. </p>

В задаче 2 cron4j после обработки параметра из очереди он может еще раз проверить содержимое очереди перед завершением и продолжить обработку, если в очереди есть что-то новое.

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

Вы можете использовать java.util.Queue для очереди.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...