fix
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 4m27s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 4m27s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
This commit is contained in:
45
Service/Jobs/HolidaySyncJob.cs
Normal file
45
Service/Jobs/HolidaySyncJob.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using Quartz;
|
||||
|
||||
namespace Service.Jobs;
|
||||
|
||||
/// <summary>
|
||||
/// 节假日同步定时任务 - 每10天执行一次
|
||||
/// </summary>
|
||||
[DisallowConcurrentExecution] // 防止并发执行
|
||||
public class HolidaySyncJob(
|
||||
IServiceProvider serviceProvider,
|
||||
ILogger<HolidaySyncJob> logger) : IJob
|
||||
{
|
||||
public async Task Execute(IJobExecutionContext context)
|
||||
{
|
||||
try
|
||||
{
|
||||
logger.LogInformation("开始执行节假日同步任务");
|
||||
|
||||
using var scope = serviceProvider.CreateScope();
|
||||
var holidayService = scope.ServiceProvider.GetRequiredService<IHolidayService>();
|
||||
|
||||
// 获取当前年份和下一年份
|
||||
var currentYear = DateTime.Now.Year;
|
||||
var nextYear = currentYear + 1;
|
||||
|
||||
// 同步当前年和下一年的数据
|
||||
var currentYearResult = await holidayService.FetchAndCacheHolidaysAsync(currentYear);
|
||||
var nextYearResult = await holidayService.FetchAndCacheHolidaysAsync(nextYear);
|
||||
|
||||
if (currentYearResult && nextYearResult)
|
||||
{
|
||||
logger.LogInformation("节假日同步任务执行完成,成功同步 {CurrentYear} 和 {NextYear} 年数据", currentYear, nextYear);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogWarning("节假日同步任务部分失败,当前年: {CurrentResult}, 下一年: {NextResult}", currentYearResult, nextYearResult);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.LogError(ex, "节假日同步任务执行出错");
|
||||
throw; // 让 Quartz 知道任务失败
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user