SchedulerListeners同TriggerListeners及JobListeners非常相似,SchedulerListeners只接收与特定trigger 或job无关的Scheduler自身事件通知。
Scheduler相关的事件包括:增加job或者trigger,移除Job或者trigger, scheduler内部发生的错误,scheduler将被关闭的通知,以及其他。
Quartz.ISchedulerListener 接口
/// <summary>
/// The interface to be implemented by classes that want to be informed of major
/// <see cref="IScheduler" /> events.
/// </summary>
/// <seealso cref="IScheduler" />
/// <seealso cref="IJobListener" />
/// <seealso cref="ITriggerListener" />
/// <author> James House</author>
public interface ISchedulerListener
{
/// <summary>
/// Called by the <see cref="IScheduler" /> when a <see cref="JobDetail" />
/// is scheduled.
/// </summary>
void JobScheduled(Trigger trigger);
/// <summary>
/// Called by the <see cref="IScheduler" /> when a <see cref="JobDetail" />
/// is unscheduled.
/// </summary>
void JobUnscheduled(string triggerName, string triggerGroup);
/// <summary>
/// Called by the <see cref="IScheduler" /> when a <see cref="Trigger" />
/// has reached the condition in which it will never fire again.
/// </summary>
void TriggerFinalized(Trigger trigger);
/// <summary>
/// Called by the <see cref="IScheduler"/> when a <see cref="Trigger"/>
/// or group of <see cref="Trigger"/>s has been paused.
/// <p>
/// If a group was paused, then the <see param="triggerName"/> parameter
/// will be null.
/// </p>
/// </summary>
/// <param name="triggerName">Name of the trigger.</param>
/// <param name="triggerGroup">The trigger group.</param>
void TriggersPaused(string triggerName, string triggerGroup);
/// <summary>
/// Called by the <see cref="IScheduler"/> when a <see cref="Trigger"/>
/// or group of <see cref="Trigger"/>s has been un-paused.
/// <p>
/// If a group was resumed, then the <see param="triggerName"/> parameter
/// will be null.
/// </p>
/// </summary>
/// <param name="triggerName">Name of the trigger.</param>
/// <param name="triggerGroup">The trigger group.</param>
void TriggersResumed(string triggerName, string triggerGroup);
/// <summary>
/// Called by the <see cref="IScheduler"/> when a <see cref="JobDetail"/>
/// or group of <see cref="JobDetail"/>s has been paused.
/// <p>
/// If a group was paused, then the <see param="jobName"/> parameter will be
/// null. If all jobs were paused, then both parameters will be null.
/// </p>
/// </summary>
/// <param name="jobName">Name of the job.</param>
/// <param name="jobGroup">The job group.</param>
void JobsPaused(string jobName, string jobGroup);
/// <summary>
/// Called by the <see cref="IScheduler" /> when a <see cref="JobDetail" />
/// or group of <see cref="JobDetail" />s has been un-paused.
/// <p>
/// If a group was resumed, then the <param name="jobName" /> parameter will
/// be null. If all jobs were paused, then both parameters will be null.
/// </p>
/// </summary>
void JobsResumed(string jobName, string jobGroup);
/// <summary>
/// Called by the <see cref="IScheduler" /> when a serious error has
/// occured within the scheduler - such as repeated failures in the <see cref="IJobStore" />,
/// or the inability to instantiate a <see cref="IJob" /> instance when its
/// <see cref="Trigger" /> has fired.
/// <p>
/// The <see cref="SchedulerException.ErrorCode" /> property of the given SchedulerException
/// can be used to determine more specific information about the type of
/// error that was encountered.
/// </p>
/// </summary>
void SchedulerError(string msg, SchedulerException cause);
/// <summary>
/// Called by the <see cref="IScheduler" /> to inform the listener
/// that it has Shutdown.
/// </summary>
void SchedulerShutdown();
}
除了不分“全局”或者“非全局”监听器外,SchedulerListeners创建及注册的方法同其他监听器类型十分相同。所有实现Quartz.ISchedulerListener接口的对象都是SchedulerListeners。