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

时间:2019-02-27 13:57:44

标签: jobs quartz.net execute raise

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

Job Detail通过一个参数以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);

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

1 个答案:

答案 0 :(得分:0)

当作业抛出异常时,Quartz.NET会记录所有执行错误。您可以启用logging(liblog抽象挂钩到NLog,log4net,Serilog)并使用现代日志聚合系统监视日志并发出警报。

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