#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 { /// /// 注入反射获取依赖对象 /// private readonly IServiceProvider _serviceProvider; public JobFactory(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } /// /// 实现接口Job /// /// /// /// 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(); } } }