Quartz.net повторять задание с интервалом после завершения задания - PullRequest
6 голосов
/ 20 сентября 2009

В настоящее время я внедряю Quartz.net в простое приложение, которое должно выполнять фрагмент кода каждые (например) 5 секунд. Только теперь выполнение кода иногда занимает более 5 секунд.

Сначала у меня была проблема с тем, что код выполнялся, пока тот же код еще работал, я исправил это с помощью интерфейса IStateFulJob вместо интерфейса IJob.

Но что я действительно хотел бы сделать, так это чтобы моя работа выполнялась через 5 секунд ПОСЛЕ завершения работы, а не через 5 секунд после запуска моей предыдущей работы.

Я мог бы обработать событие, которое вызывается, когда мой слушатель «слышит», что задание готово, и перепланирует задание, но мне было интересно, нет ли для этого каких-либо стандартных функций.

1 Ответ

4 голосов
/ 30 сентября 2009

В настоящее время не существует стандартного способа достижения этого, поскольку Quartz.NET придерживается идеи предварительно заданного (рассчитанного заранее) времени срабатывания и опроса правильного времени для запуска работы.

То, как вы описали, было бы самым простым путем. Либо запланируйте задание на следующее выполнение, либо слушателя.

...