Quartz.Net 如何记录失火

标签 quartz.net

我正在使用 Quartz.Net,我们经常在开发和运行过程中看到失败的情况。虽然这不是一个问题,但我们希望启用某种跟踪,以便在开发中可以看到何时发生失火。

我们可以为此目的 Hook 任何事件吗?理想情况下,我追求的是......

var factory = new StdSchedulerFactory();
var scheduler = factory.GetScheduler();
scheduler.Start();

scheduler.OnMisfire += (e) => {
    Console.Out.WriteLine(e);
}

最佳答案

您可以使用触发器监听器来处理此问题,请参阅 Lesson 7: TriggerListeners and JobListeners .

您可以使用history plugin作为构建您自己的日志记录的引用。

示例

class MisfireLogger : TriggerListenerSupport
{
    private readonly ILog log = LogManager.GetLogger (typeof (MisfireLogger));

    public override void TriggerMisfired (ITrigger trigger)
    {
        log.WarnFormat("Trigger {0} misfired", trigger.Key);
    }
}

scheduler.ListenerManager.AddTriggerListener (new MisfireLogger ());

关于Quartz.Net 如何记录失火,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669515/

相关文章:

c# - 你能让 Quartz.Net 使用优先级队列吗?

c# - 在 Quartz.Net 中调度依赖作业

log4net - Quartz.NET - 找不到配置部分 <common/logging> - 抑制日志输出

c# - Quartz.net Scheduler 远程访问的安全性

c# - 在 Application_End 中检测站点登录 url

quartz-scheduler - 使用 Quartz.NET 安排任务每天在特定时间运行

web-config - 如何配置与 Log4Net 集成的 Quartz.Net 版本 2.1.2.0

.net - WinForms - 如何在不传递委托(delegate)的情况下从单独的线程访问/调用 UI 线程中的方法?

c# - Windows 服务使用 Topshelf 启动然后停止

.net - 应用程序数据缓存 - Quartz.NET 与任务列表?