Fork me on GitHub

Quartz.net官方开发指南 第八课:SchedulerListeners

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。

posted @ 2007-08-25 09:16  张善友  阅读(6085)  评论(1编辑  收藏  举报