#region << 版 本 注 释 >> /*---------------------------------------------------------------- * 命å空间:WIDESEAWCS_QuartzJob * 创建者:胡童庆 * 创建时间:2024/8/2 16:13:36 * 版本:V1.0.0 * æè¿°ï¼šJob工厂类 * * ---------------------------------------------------------------- * 修改人: * 修改时间: * 版本:V1.0.1 * 修改说明: * *----------------------------------------------------------------*/ #endregion << 版 本 注 释 >> using Microsoft.Extensions.DependencyInjection; using Quartz.Spi; using Quartz; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEAWCS_QuartzJob { public class JobFactory : IJobFactory { /// <summary> /// 注入å射获å–ä¾èµ–对象 /// </summary> private readonly IServiceProvider _serviceProvider; public JobFactory(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } /// <summary> /// 实现接å£Job /// </summary> /// <param name="bundle"></param> /// <param name="scheduler"></param> /// <returns></returns> public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler) { try { IServiceScope serviceScope = _serviceProvider.CreateScope(); IJob? job = serviceScope.ServiceProvider.GetService(bundle.JobDetail.JobType) as IJob; return job; } catch (Exception) { throw; } } public void ReturnJob(IJob job) { IDisposable? disposable = job as IDisposable; disposable?.Dispose(); } } }