using Furion.DatabaseAccessor; using Furion.Schedule; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace FlexJobApi.Core { /// /// 定时按日期计算任务发布状态 /// public class CalcTaskSatusByDateJob( IRepository rep ) : IJob { private readonly IRepository rep = rep; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { var now = DateTime.Now; var entities = await rep.AsQueryable() .Where(it => it.EndTime < now && it.ReleaseStatus != EnumTaskReleaseStatus.Stopped) .ToListAsync(); if (entities.IsNotNull()) { foreach (var entity in entities) { entity.ReleaseStatus = EnumTaskReleaseStatus.Stopped; } await rep.UpdateNowAsync(entities); } } } }