Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新Quartz.net cron trigger,使其不在每日触发器的特定日期执行。_C#_Quartz Scheduler_Quartz.net - Fatal编程技术网

C# 更新Quartz.net cron trigger,使其不在每日触发器的特定日期执行。

C# 更新Quartz.net cron trigger,使其不在每日触发器的特定日期执行。,c#,quartz-scheduler,quartz.net,C#,Quartz Scheduler,Quartz.net,我有cron触发器,它每天在一天中的特定时间触发,我必须更新该触发器,这样我就不希望该触发器在特定日期执行 例如,我有每天执行的触发器,我必须在该日期(2017年10月31日)传递该触发器不应执行的日期 我试过下面的代码 var calendar = SCSScheduler.Scheduler.GetCalendar(id); CronCalendar cronCal = new CronCalendar(calendar,cronExceptionSchedule);

我有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
类,该类用于从您创建的触发器中排除整天

这在(quartz 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();