TimerStatTimer.cs 821 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using Microsoft.Extensions.Hosting;
  5. using MySystem;
  6. public class TimerStatTimer : BackgroundService
  7. {
  8. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  9. {
  10. while (!stoppingToken.IsCancellationRequested)
  11. {
  12. int timespan = 10000;
  13. await Task.Delay(timespan).ContinueWith(tsk =>
  14. {
  15. DoWorks();
  16. });
  17. }
  18. }
  19. private void DoWorks()
  20. {
  21. string MsgContent = RedisDbconn.Instance.RPop<string>("TimerStat");
  22. if (!string.IsNullOrEmpty(MsgContent))
  23. {
  24. JobMqMsg job = Newtonsoft.Json.JsonConvert.DeserializeObject<JobMqMsg>(MsgContent);
  25. StatTimerService.Instance.Start(job);
  26. }
  27. }
  28. }