using JNPF.Common.Configuration; using JNPF.DependencyInjection; using JNPF.EventBus; using JNPF.Systems.Entitys.System; using SqlSugar; namespace JNPF.EventHandler; /// /// 任务事件订阅. /// public class TaskEventSubscriber : IEventSubscriber, ISingleton { /// /// 初始化客户端. /// private static SqlSugarScope? _sqlSugarClient; /// /// 构造函数. /// public TaskEventSubscriber(ISqlSugarClient context) { _sqlSugarClient = (SqlSugarScope)context; } /// /// 创建任务日记. /// /// /// [EventSubscribe("Task:UpdateTask")] public async Task UpdateTask(EventHandlerExecutingContext context) { var log = (TaskEventSource)context.Source; if (KeyVariable.MultiTenancy) { if (log.ConnectionConfig.ConfigId == null) return; _sqlSugarClient.AddConnection(JNPFTenantExtensions.GetConfig(log.ConnectionConfig)); _sqlSugarClient.ChangeDatabase(log.ConnectionConfig.ConfigId); } await _sqlSugarClient.Updateable().SetColumns(x => new TimeTaskEntity() { RunCount = x.RunCount + 1, LastRunTime = DateTime.Now, NextRunTime = log.Entity.NextRunTime, LastModifyUserId = "admin", LastModifyTime = DateTime.Now }).Where(x => x.Id == log.Entity.Id).ExecuteCommandAsync(); } }