Files
EmailBill/WebApi/Expand.cs
孙诚 a13e1fe9e8
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 22s
Docker Build & Deploy / Deploy to Production (push) Successful in 8s
添加开发者日志功能
2025-12-29 16:45:51 +08:00

40 lines
1.5 KiB
C#

using Quartz;
namespace WebApi;
public static class Expand
{
public static void AddScheduler(this WebApplicationBuilder builder)
{
builder.Services.AddQuartz(q =>
{
// 配置调度器
q.SchedulerId = "EmailBillScheduler";
// 配置邮件同步任务 - 每10分钟执行一次
var emailJobKey = new JobKey("EmailSyncJob");
q.AddJob<Service.Jobs.EmailSyncJob>(opts => opts.WithIdentity(emailJobKey));
q.AddTrigger(opts => opts
.ForJob(emailJobKey)
.WithIdentity("EmailSyncTrigger")
.WithCronSchedule("0 0/10 * * * ?") // 每10分钟执行
.WithDescription("每10分钟同步一次邮件"));
// 配置周期性账单任务 - 每天早上6点执行
var periodicBillJobKey = new JobKey("PeriodicBillJob");
q.AddJob<Service.Jobs.PeriodicBillJob>(opts => opts.WithIdentity(periodicBillJobKey));
q.AddTrigger(opts => opts
.ForJob(periodicBillJobKey)
.WithIdentity("PeriodicBillTrigger")
.WithCronSchedule("0 0 6 * * ?") // 每天早上6点执行
.WithDescription("每天早上6点执行周期性账单检查"));
});
// 添加 Quartz Hosted Service
builder.Services.AddQuartzHostedService(options =>
{
// 等待任务完成后再关闭
options.WaitForJobsToComplete = true;
});
}
}