PublicErrService.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using Microsoft.Extensions.Hosting;
  6. using MySystem;
  7. public class PublicErrService : BackgroundService
  8. {
  9. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  10. {
  11. while (!stoppingToken.IsCancellationRequested)
  12. {
  13. ProgressStart();
  14. await Task.Delay(5000);
  15. }
  16. }
  17. private void ProgressStart()
  18. {
  19. List<Brand> BrandList = RedisDbconn.Instance.GetList<Brand>("brand", 1, 1000);
  20. Parallel.ForEach(BrandList, brand =>
  21. {
  22. Dictionary<string, string> data = new Dictionary<string, string>();
  23. try
  24. {
  25. data = RedisDbconn.Instance.RPop<Dictionary<string, string>>(brand.ReqType + "_err");
  26. RedisDbconn.Instance.AddList(brand.ReqType, data);
  27. }
  28. catch (Exception ex)
  29. {
  30. data.Add("TransferErr", ex.ToString());
  31. data.Add("TransferErrTime", DateTime.Now.ToString());
  32. RedisDbconn.Instance.AddList(brand.ReqType + "_service_err", data);
  33. }
  34. });
  35. }
  36. }