使用Quartz.NET 3.0.6,传递了“格式错误”的作业详细信息定义以进行调度,因此作业未执行且未引发错误。
作业详细信息将一个参数传递为bool(ignoreHeaderRow)而不是字符串(ignoreHeaderRow.ToString()),将参数更改为字符串以修复问题并执行作业。
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通知或任何适合您需要的错误执行一些操作。