Quartz.NET установка MisfireInstruction

Я работаю в C#, используя Quartz.NET и у меня возникли проблемы с установкой инструкции осечки на CronTrigger. Я запускаю SQL-сервер с установленной Quartz DB. У меня есть следующий код, который отлично работает для создания задания и запуска планировщика.

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.

1 ответов


Создание триггера должно быть следующим:

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

вы можете использовать эти варианты:

  • WithMisfireHandlingInstructionDonothing
  • WithMisfireHandlingInstructionFireandproceed
  • WithMisfireHandlingInstructionIgnoremisfires

вы можете найти хорошее объяснение здесь.