Quartz 调度器监听器

调度器监听器类似于 ITriggerListenerIJobListener,不同之处在于它们接收调度器内部事件的通知——并不一定与特定的触发器或作业相关联。

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

危险
确保您的调度器监听器永远不会抛出异常(使用 try-catch 块)并且能够处理内部问题。当监听器通知失败时,如果 Quartz 无法确定监听器中的必要逻辑是否成功完成,可能会导致不可预测的状态。

ISchedulerListener 接口

public interface ISchedulerListener 
{
    Task JobScheduled(Trigger trigger);
    Task JobUnscheduled(string triggerName, string triggerGroup);
    Task TriggerFinalized(Trigger trigger);
    Task TriggersPaused(string triggerName, string triggerGroup);
    Task TriggersResumed(string triggerName, string triggerGroup);
    Task JobsPaused(string jobName, string jobGroup);
    Task JobsResumed(string jobName, string jobGroup);
    Task SchedulerError(string msg, SchedulerException cause);
    Task SchedulerShutdown();
}

调度器监听器通过调度器的 ListenerManager 进行注册。调度器监听器可以是实现了 ISchedulerListener 接口的任何对象。

添加调度器监听器:

scheduler.ListenerManager.AddSchedulerListener(mySchedListener);

移除调度器监听器:

scheduler.ListenerManager.RemoveSchedulerListener(mySchedListener);
在本文档中