You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.9 KiB
C#

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
{
/// <summary>
/// 添加费用模块定时任务
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
public static void AddFeeQuartzModuleInstall(this IServiceCollection services, IConfiguration configuration)
{
//获取进项发票
var jobKey = new JobKey("InInvoice");
services.AddQuartz(q =>
{
// 配置 Quartz
q.UseMicrosoftDependencyInjectionJobFactory();
q.AddJob<InInvoiceJob>(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<BankStatementJob>(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<FeeCustTemplateJob>(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);
}
/// <summary>
/// 添加操作模块定时任务
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
public static void AddOpQuartzModuleInstall(this IServiceCollection services, IConfiguration configuration)
{
var jobKey1 = new JobKey(nameof(WSLReportJob));
services.AddQuartz(q =>
{
q.UseMicrosoftDependencyInjectionJobFactory();
q.AddJob<WSLReportJob>(opts => opts.WithIdentity(jobKey1));
q.AddTrigger(opts => opts
.ForJob(jobKey1)
.WithIdentity(nameof(WSLReportJob) + "-trigger")
.WithCronSchedule(configuration["JobConfig:" + jobKey1.Name])
);
});
//var jobKey2 = new JobKey(nameof(BackgroundTaskJob));
//services.AddQuartz(q =>
//{
// // 配置 Quartz
// q.UseMicrosoftDependencyInjectionJobFactory();
// q.AddJob<BackgroundTaskJob>(opts => opts.WithIdentity(jobKey2));
// q.AddTrigger(opts => opts
// .ForJob(jobKey2)
// .WithIdentity(nameof(BackgroundTaskJob) + "-trigger")
// .WithSimpleSchedule(x => x
// .WithIntervalInMinutes(2)
// .RepeatForever()));
//});
services.AddQuartzServer(q => q.WaitForJobsToComplete = true);
}
}
}