Quartz.NET设置MisfireInstruction

Ben*_*all 9 c# sql scheduler quartz.net quartz.net-2.0

我正在使用Quartz.NET在C#中工作,并且在CronTrigger上设置misfire指令时遇到问题.我正在运行安装了Quartz DB的SQL后端.我有以下代码适用于创建作业和运行调度程序.

IScheduler _scheduler;
IJobDetail job;
ISchedulerFactory sFactory;
ICronTrigger trig;

sFactory = new StdSchedulerFactory();

_scheduler = sFactory.GetScheduler();
_scheduler.Start();

job = JobBuilder.Create<Test>().WithIdentity("testJob", "testGroup").Build();
trig = (ICronTrigger) TriggerBuilder.Create().WithIdentity("testTrigger", "testGroup").WithCronSchedule("0/10 * * * * ?").Build(); int i = trig.MisfireInstruction;

_scheduler.ScheduleJob(job, trig);
Run Code Online (Sandbox Code Playgroud)

我可以访问的唯一错误指令trig.MisfireInstruction是int,我无法设置它.还有一些函数从WithMisfireHandlingInstructionCronScheduleBuilder 开始.

Lef*_*tyX 16

您的触发器创建应该是这样的:

trig = (ICronTrigger)TriggerBuilder
       .Create()
       .WithIdentity("testTrigger", "testGroup")
       .WithCronSchedule("0/10 * * * * ?", x => x.WithMisfireHandlingInstructionFireAndProceed())
       .Build();
Run Code Online (Sandbox Code Playgroud)

你可以使用这些选项:

  • WithMisfireHandlingInstructionDoNothing
  • WithMisfireHandlingInstructionFireAndProceed
  • WithMisfireHandlingInstructionIgnoreMisfires

你可以在这里找到一个很好的解释.