更新 Quartz.net cron 触发器不在特定的 date/dates 上执行每日触发器。
Update Quartz.net cron trigger not to execute on a particular date/dates for daily trigger.
我有每天在特定时间触发的 cron 触发器,我必须更新该触发器以便我不希望该触发器在特定日期执行。
例如。我有每天每天执行的触发器,我必须传递一个日期(2017 年 10 月 31 日)在这个日期这个触发器不应该执行。
我试过下面的代码
var calendar = SCSScheduler.Scheduler.GetCalendar(id);
CronCalendar cronCal = new CronCalendar(calendar,cronExceptionSchedule);
SCSScheduler.Scheduler.AddCalendar(id, cronCal, true, true);
var newTrigger = tb.WithCronSchedule(cronSchedule)
.StartAt(DateTime.UtcNow)
.ForJob(id)
.ModifiedByCalendar(id)
.Build();
SCSScheduler.Scheduler.RescheduleJob(key, newTrigger);
我找不到任何方法来更新日历以不在该特定日期执行作业。
您应该使用 HolidayCalendar
class,它用于从您创建的触发器中排除整日。
这实际上在 documentation(石英 3.0beta1 的代码)中有很好的描述:
HolidayCalendar cal = new HolidayCalendar();
cal.AddExcludedDate(new DateTime(2017, 10, 31));
await sched.AddCalendar("myHolidays", cal, false, false);
ITrigger t = TriggerBuilder.Create()
.WithIdentity("myTrigger")
.ForJob("myJob")
.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(9, 30)) // execute job daily at 9:30
.ModifiedByCalendar("myHolidays") // but not on holidays
.Build();
我有每天在特定时间触发的 cron 触发器,我必须更新该触发器以便我不希望该触发器在特定日期执行。
例如。我有每天每天执行的触发器,我必须传递一个日期(2017 年 10 月 31 日)在这个日期这个触发器不应该执行。
我试过下面的代码
var calendar = SCSScheduler.Scheduler.GetCalendar(id);
CronCalendar cronCal = new CronCalendar(calendar,cronExceptionSchedule);
SCSScheduler.Scheduler.AddCalendar(id, cronCal, true, true);
var newTrigger = tb.WithCronSchedule(cronSchedule)
.StartAt(DateTime.UtcNow)
.ForJob(id)
.ModifiedByCalendar(id)
.Build();
SCSScheduler.Scheduler.RescheduleJob(key, newTrigger);
我找不到任何方法来更新日历以不在该特定日期执行作业。
您应该使用 HolidayCalendar
class,它用于从您创建的触发器中排除整日。
这实际上在 documentation(石英 3.0beta1 的代码)中有很好的描述:
HolidayCalendar cal = new HolidayCalendar();
cal.AddExcludedDate(new DateTime(2017, 10, 31));
await sched.AddCalendar("myHolidays", cal, false, false);
ITrigger t = TriggerBuilder.Create()
.WithIdentity("myTrigger")
.ForJob("myJob")
.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(9, 30)) // execute job daily at 9:30
.ModifiedByCalendar("myHolidays") // but not on holidays
.Build();