JobBuilder
DateBuilder
其他的Builder(TriggerBuilder、SchedulerBuilder等)
ISchedulerFactory
DirectSchedulerFactory StdSchedulerFactory
IScheduler
StdScheduler RemoteScheduler[proxy]
//如果你没有自定义的loadHelper,那么就使用SimpleTypeLoadHelper loadHelper = ObjectUtils.InstantiateType<ITypeLoadHelper>(typeLoadHelperType ?? typeof(SimpleTypeLoadHelper));
scheduler.ListenerManager.AddJobListener(new CustomJobListener(),GroupMatcher<JobKey>.AnyGroup());
public class CustomJobListener : IJobListener { public string Name => "CustomJobListener"; /// <summary> /// 执行否决 /// </summary> /// <param name="context"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task JobExecutionVetoed(IJobExecutionContext context, CancellationToken cancellationToken = default) { await Task.Factory.StartNew(() => { Console.WriteLine("JobExecutionVetoed"); }); } /// <summary> /// 待执行 /// </summary> /// <param name="context"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task JobToBeExecuted(IJobExecutionContext context, CancellationToken cancellationToken = default) { await Task.Factory.StartNew(() => { Console.WriteLine("JobToBeExecuted"); }); } /// <summary> /// 已执行 /// </summary> /// <param name="context"></param> /// <param name="jobException"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException, CancellationToken cancellationToken = default) { await Task.Factory.StartNew(() => { Console.WriteLine("JobWasExecuted"); }); } }
Quartz.Net系列(三):解读Quartz.Net源码领略设计模式在其中的应用
原文:https://www.cnblogs.com/vic-tory/p/13129586.html