OnlineUserJob.cs 1.0 KB

1234567891011121314151617181920212223242526272829
  1. using Admin.NET.Core;
  2. /// <summary>
  3. /// 清理在线用户作业任务
  4. /// </summary>
  5. [PeriodSeconds(1, TriggerId = "tId_onlineUser", Description = "清理在线用户", MaxNumberOfRuns = 1, StartNow = true, RunOnStart = true)]
  6. public class OnlineUserJob : IJob
  7. {
  8. private readonly IServiceProvider _serviceProvider;
  9. public OnlineUserJob(IServiceProvider serviceProvider)
  10. {
  11. _serviceProvider = serviceProvider;
  12. }
  13. public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
  14. {
  15. using var serviceScope = _serviceProvider.CreateScope();
  16. var rep = serviceScope.ServiceProvider.GetService<SqlSugarRepository<SysOnlineUser>>();
  17. await rep.AsDeleteable().ExecuteCommandAsync();
  18. Console.ForegroundColor = ConsoleColor.Red;
  19. Console.WriteLine("【" + DateTime.Now + "】服务重启清空在线用户");
  20. // 缓存多租户
  21. await serviceScope.ServiceProvider.GetService<SysTenantService>().UpdateTenantCache();
  22. }
  23. }