2010-06-08 2 views
3

Я хочу, чтобы мои задания выполнялись за каждые X секунд, между одним заданием и X есть один к одному. Также во время выполнения могут быть зарегистрированы новые задания с их собственными интервалами.Что соответствует выражению Cron для огня за каждые X секунд, где X> 60?

Я попытался написать выражение cron для таких сценариев, но в документации записано, что значение секунд не может быть больше 59. Таким образом, выражение cron выглядит следующим образом: «0/63 * * * *?" недействительна.

На первый взгляд решение этой проблемы, казалось, было выражением следующим образом: «0/3 0/1 * * *?», Но это означает совершенно другую вещь: запускать работу каждые три секунды каждой минуты.

Можете ли вы предложить правильное решение (выражение cron) для этого? Я знаю, что могу использовать простые таймеры, но я должен использовать задания cron, используя Quartz.

ответ

6

Кварцевый синтаксис cron предназначен для выражения времени, основанного на стандартных 24-часовых 60-минутных часах. Он не подходит для «каждые n секунд», где n может быть любым значением. Вы не сможете это сделать с помощью выражений cron.

Если вам нужно сделать это с помощью кварца, вы должны использовать SimpleTrigger, а не CronTrigger. У вас действительно нет возможности, если вы не хотите использовать чрезвычайно сложную коллекцию перекрывающихся, искусственно выведенных выражений cron.

+0

Спасибо, я не знал, что кварц имеет SimpleTrigger. – giolekva

Смежные вопросы