SchedulerListeners 很像 ITriggerListener
s 和 IJobListener
s,除了它们接收调度程序本身内的事件通知 - 不一定是与特定触发器或作业相关的事件。
与调度器相关的事件包括:作业/触发器的添加、作业/触发器的移除、调度器内部的严重错误、调度器被关闭的通知等。
警告
确保您的调度程序侦听器永远不会抛出异常(使用 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();
}
SchedulerListeners 注册到调度程序的 ListenerManager
。 SchedulerListeners 实际上可以是任何实现 ISchedulerListener
接口的对象。
添加调度器监听器:
scheduler.ListenerManager.AddSchedulerListener(mySchedListener);
删除 SchedulerListener:
scheduler.ListenerManager.RemoveSchedulerListener(mySchedListener);