net core 使用quartz
阿新 • • 發佈:2022-04-20
------------恢復內容開始------------
1
SimpleJobFactory
工廠類定義了生成Job任務的過程:利用反射機制
呼叫無參建構函式
形成的Job例項
很多時候,定義的Job任務依賴了其他服務(該Job定義有參建構函式),此時預設的SimpleJobFactory不能滿足例項化要求,考慮自定義Job工廠類。
public class CustomizeJobFactory : IJobFactory { /// <summary> /// 容器提供器, /// </summary> protectedIServiceProvider _serviceProvider; public CustomizeJobFactory(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } /// <summary> /// 返回IJob /// </summary> /// <param name="bundle"></param> /// <param name="scheduler"></param>/// <returns></returns> public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler) { //Job型別 Type jobType = bundle.JobDetail.JobType; //返回jobType對應型別的例項 return _serviceProvider.GetService(jobType) as IJob; }/// <summary> /// 清理銷燬IJob /// </summary> /// <param name="job"></param> public void ReturnJob(IJob job) { var disposable = job as IDisposable; disposable?.Dispose(); } }