OnlineUserJob.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. namespace Admin.NET.Core;
  5. /// <summary>
  6. /// 清理在线用户作业任务
  7. /// </summary>
  8. [JobDetail("job_onlineUser", Description = "清理在线用户", GroupName = "default", Concurrent = false)]
  9. [PeriodSeconds(1, TriggerId = "trigger_onlineUser", Description = "清理在线用户", MaxNumberOfRuns = 1, RunOnStart = true)]
  10. public class OnlineUserJob : IJob
  11. {
  12. private readonly IServiceScopeFactory _scopeFactory;
  13. public OnlineUserJob(IServiceScopeFactory scopeFactory)
  14. {
  15. _scopeFactory = scopeFactory;
  16. }
  17. public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
  18. {
  19. using var serviceScope = _scopeFactory.CreateScope();
  20. var rep = serviceScope.ServiceProvider.GetService<SqlSugarRepository<SysOnlineUser>>();
  21. await rep.CopyNew().AsDeleteable().ExecuteCommandAsync(stoppingToken);
  22. var originColor = Console.ForegroundColor;
  23. Console.ForegroundColor = ConsoleColor.Red;
  24. Console.WriteLine("【" + DateTime.Now + "】服务重启清空在线用户");
  25. Console.ForegroundColor = originColor;
  26. // 缓存租户列表
  27. await serviceScope.ServiceProvider.GetService<SysTenantService>().CacheTenant();
  28. }
  29. }