Quartz.NET 不执行作业也不引发错误

Quartz.NET does not execute nor raise error for a job

使用 Quartz.NET 3.0.6,传递了一个 "malformed" 作业详细信息定义以进行调度,因此作业未执行且未引发任何错误。

Job Detail 将一个参数作为 bool (ignoreHeaderRow) 而不是 string (ignoreHeaderRow.ToString()) 传递,将参数更改为 string 解决了问题并执行了作业。

IJobDetail job = JobBuilder.Create<ImportJob>()
.WithIdentity("Immediate" + DateTime.UtcNow.ToFileTime(), GROUP_NAME)
.UsingJobData("InfolinxSession", JsonConvert.SerializeObject(session))
.UsingJobData("unprintable", unprintable.ToString())
.UsingJobData("ignoreHeaderRow", ignoreHeaderRow.ToString())
.Build();

QuartzScheduler.ScheduleJob(job);

有没有办法捕捉到这种情况?

当作业抛出异常时,

Quartz.NET 会记录所有执行错误。您可以启用 logging(liblog 抽象挂钩到 NLog、log4net、Serilog)并观察日志并使用现代日志聚合系统发出警报。

其他选项是将 scheduler listener 附加到调度程序以侦听调度程序错误,然后对错误执行一些操作,例如 Slack 通知或任何适合您需要的操作。