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.
133 lines
4.9 KiB
C#
133 lines
4.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));
|
|
string cron3 = configuration["JobConfig:" + jobKey3.Name];
|
|
if (!string.IsNullOrEmpty(cron3))
|
|
{
|
|
services.AddQuartz(q =>
|
|
{
|
|
q.UseMicrosoftDependencyInjectionJobFactory();
|
|
q.AddJob<FeeCustTemplateJob>(opts => opts.WithIdentity(jobKey3));
|
|
q.AddTrigger(opts => opts
|
|
.ForJob(jobKey3)
|
|
.WithIdentity(nameof(FeeCustTemplateJob) + "-trigger")
|
|
.WithCronSchedule(cron3)
|
|
);
|
|
});
|
|
}
|
|
|
|
// 添加 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)
|
|
{
|
|
int jobCount = 0;
|
|
|
|
var jobKey1 = new JobKey(nameof(WSLReportJob));
|
|
string cron1 = configuration["JobConfig:" + jobKey1.Name];
|
|
if (!string.IsNullOrEmpty(cron1))
|
|
{
|
|
services.AddQuartz(q =>
|
|
{
|
|
q.UseMicrosoftDependencyInjectionJobFactory();
|
|
q.AddJob<WSLReportJob>(opts => opts.WithIdentity(jobKey1));
|
|
q.AddTrigger(opts => opts
|
|
.ForJob(jobKey1)
|
|
.WithIdentity(nameof(WSLReportJob) + "-trigger")
|
|
.WithCronSchedule(cron1)
|
|
);
|
|
});
|
|
jobCount++;
|
|
}
|
|
|
|
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(5)
|
|
.RepeatForever()));
|
|
});
|
|
jobCount++;
|
|
|
|
|
|
//var jobKey2 = new JobKey(nameof(WSLWeeklyReportJob));
|
|
//services.AddQuartz(q =>
|
|
//{
|
|
// q.UseMicrosoftDependencyInjectionJobFactory();
|
|
// q.AddJob<WSLWeeklyReportJob>(opts => opts.WithIdentity(jobKey2));
|
|
// q.AddTrigger(opts => opts
|
|
// .ForJob(jobKey2)
|
|
// .WithIdentity(nameof(WSLWeeklyReportJob) + "-trigger")
|
|
// .WithCronSchedule(configuration["JobConfig:" + jobKey2.Name])
|
|
// );
|
|
//});
|
|
|
|
if (jobCount > 0)
|
|
services.AddQuartzServer(q => q.WaitForJobsToComplete = true);
|
|
}
|
|
}
|
|
}
|