OnlineUserJob.cs 1.1 KB

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