Допустим, у нас есть задание и соответствующий триггер, настроенный следующим образом:
var jobKey = new JobKey(typeof(HelloJob).Name, typeof(HelloJob).Name);
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity(jobKey)
.RequestRecovery()
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(string.Format("{0}Trigger", typeof(HelloJob).Name), typeof(HelloJob).Name)
.StartAt(DateBuilder.FutureDate(1, IntervalUnit.Second))
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(1)
.WithRepeatCount(9))
.Build();
используя «quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz».
Ну, я ожидаю, что задание будет выполняться 10 раз в нормальной ситуации, и, конечно, это так. Проблема в том, что я хочу, чтобы задание продолжало оставшееся количество повторений, если в течение его жизненного цикла произойдет какая-либо остановка.
Например, я останавливаю программу, когда выполняется пятое выполнение задания, и в следующий раз, когда я запускаю программу, я хочу выполнить задание только в пять раз больше, но оно выполняется 10 раз.
Как мне настроить Scheduler, Job и Trigger, чтобы сделать это?