using DS.WMS.Core.Jobs; using DS.WMS.Core.QuarztJobs; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Quartz; using Quartz.AspNetCore; namespace DS.Module.QuartzModuleInstall { public static class QuartzModuleInstall { public static void AddFeeQuartzModuleInstall(this IServiceCollection services, IConfiguration configuration) { //获取进项发票 var jobKey = new JobKey("InInvoice"); services.AddQuartz(q => { // 配置 Quartz q.UseMicrosoftDependencyInjectionJobFactory(); q.AddJob(opts => opts.WithIdentity(jobKey)); q.AddTrigger(opts => opts .ForJob(jobKey) .WithIdentity("InInvoice-trigger") .WithSimpleSchedule(x => x .WithIntervalInSeconds(60) .RepeatForever())); }); //获取银行流水 var BankStatementKey = new JobKey("BankStatement"); services.AddQuartz(q => { // 配置 Quartz q.UseMicrosoftDependencyInjectionJobFactory(); q.AddJob(opts => opts.WithIdentity(BankStatementKey)); q.AddTrigger(opts => opts .ForJob(BankStatementKey) .WithIdentity("BankStatement-trigger") .WithSimpleSchedule(x => x .WithIntervalInSeconds(60) .RepeatForever())); }); var jobKey3 = new JobKey(nameof(FeeCustTemplateJob)); services.AddQuartz(q => { q.UseMicrosoftDependencyInjectionJobFactory(); q.AddJob(opts => opts.WithIdentity(jobKey3)); q.AddTrigger(opts => opts .ForJob(jobKey3) .WithIdentity(nameof(FeeCustTemplateJob) + "-trigger") .WithCronSchedule(configuration["JobConfig:" + jobKey3.Name]) ); }); // 添加 Quartz 主机服务 services.AddQuartzServer(q => q.WaitForJobsToComplete = true); } public static void AddOpQuartzModuleInstall(this IServiceCollection services, IConfiguration configuration) { var jobKey1 = new JobKey(nameof(WSLReportJob)); services.AddQuartz(q => { q.UseMicrosoftDependencyInjectionJobFactory(); q.AddJob(opts => opts.WithIdentity(jobKey1)); q.AddTrigger(opts => opts .ForJob(jobKey1) .WithIdentity(nameof(WSLReportJob) + "-trigger") .WithCronSchedule(configuration["JobConfig:" + jobKey1.Name]) //.WithSimpleSchedule(s => s.WithIntervalInMinutes(1).WithRepeatCount(1)) //测试用 ); }); services.AddQuartzServer(q => q.WaitForJobsToComplete = true); } } }