SchedulerListeners 很像 ITriggerListeners 和 IJobListeners,除了它们接收调度程序本身内的事件通知 - 不一定是与特定触发器或作业相关的事件。

    与调度器相关的事件包括:作业/触发器的添加、作业/触发器的移除、调度器内部的严重错误、调度器被关闭的通知等。

    警告

    确保您的调度程序侦听器永远不会抛出异常(使用 try-catch)并且它们可以处理内部问题。 当侦听器通知失败时,无法确定侦听器中所需的逻辑是否已成功完成,Quartz 可能会进入不可预知的状态。

    ISchedulerListener 接口

    1. public interface ISchedulerListener
    2. {
    3. Task JobScheduled(Trigger trigger);
    4. Task JobUnscheduled(string triggerName, string triggerGroup);
    5. Task TriggerFinalized(Trigger trigger);
    6. Task TriggersPaused(string triggerName, string triggerGroup);
    7. Task TriggersResumed(string triggerName, string triggerGroup);
    8. Task JobsPaused(string jobName, string jobGroup);
    9. Task JobsResumed(string jobName, string jobGroup);
    10. Task SchedulerError(string msg, SchedulerException cause);
    11. Task SchedulerShutdown();
    12. }

    SchedulerListeners 注册到调度程序的 ListenerManager。 SchedulerListeners 实际上可以是任何实现 ISchedulerListener 接口的对象。

    添加调度器监听器:

    1. scheduler.ListenerManager.AddSchedulerListener(mySchedListener);

    删除 SchedulerListener:

    1. scheduler.ListenerManager.RemoveSchedulerListener(mySchedListener);