1. 程式人生 > 其它 >net core 使用quartz

net core 使用quartz

------------恢復內容開始------------

SimpleJobFactory工廠類定義了生成Job任務的過程:利用反射機制呼叫無參建構函式形成的Job例項

很多時候,定義的Job任務依賴了其他服務(該Job定義有參建構函式),此時預設的SimpleJobFactory不能滿足例項化要求,考慮自定義Job工廠類

   public class CustomizeJobFactory : IJobFactory
    {
        /// <summary>
        /// 容器提供器,
        /// </summary>
        protected
IServiceProvider _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(); } }