Quartz.NET设置MisfireInstruction(Quartz.NET setting

2019-08-03 06:10发布

我在使用Quartz.NET C#工作时遇到的问题设置上CronTrigger熄火指令。 我运行安装了石英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);

我可以访问的唯一misfireinstruction是trig.MisfireInstruction这是一个int,我不能对它进行设置。 也有一些开始功能WithMisfireHandlingInstruction在CronScheduleBuilder。

Answer 1:

你触发创作应该是这样的:

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

您可以使用这些选项:

  • WithMisfireHandlingInstructionDoNothing
  • WithMisfireHandlingInstructionFireAndProceed
  • WithMisfireHandlingInstructionIgnoreMisfires

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



文章来源: Quartz.NET setting MisfireInstruction