Quartz.net повторный задание с интервалом после завершения работы
-
11-09-2019 - |
Вопрос
В настоящее время я внедряю Quartz.net в простом приложении, которое должно выполнять кусок кода каждый (например) 5 секунд. Только теперь код иногда занимает более 5 секунд.
Сначала у меня возникла проблема с тем, что код был выполнен, когда тот же код все еще работал, я исправил это, используя интерфейс IstatefulJob вместо интерфейса IJOB.
Но я действительно хотел бы достичь, так это то, что моя работа выполняется через 5 секунд после завершения работы, а не через 5 секунд после начала моей предыдущей работы.
Я, конечно, мог справиться с событием, которое запускается, когда мой слушатель «слышит», что работа готова и переоценка работы, но мне было интересно, нет ли каких-либо стандартных функциональности для этого.
Решение
В настоящее время нет стандартного способа достичь этого, так как Quartz.net играет в идее, чтобы иметь предопределенное (рассчитанное предварительное) время пожара и опрос для правильного времени, чтобы вызвать работу.
То, как вы описали, будет самым простым путем. Либо запланируйте с работы следующего исполнения, либо от слушателя.