Quartz 调度器监听器
调度器监听器类似于 ITriggerListener
和 IJobListener
,不同之处在于它们接收调度器内部事件的通知——并不一定与特定的触发器或作业相关联。
调度器相关的事件包括:作业/触发器的添加、作业/触发器的移除、调度器内部的严重错误、调度器关闭的通知以及其他事件。
危险
确保您的调度器监听器永远不会抛出异常(使用 try-catch 块)并且能够处理内部问题。当监听器通知失败时,如果 Quartz 无法确定监听器中的必要逻辑是否成功完成,可能会导致不可预测的状态。
确保您的调度器监听器永远不会抛出异常(使用 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);