AdReportService.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using AdService.Controller.Dto;
  2. using DW5S.DTO;
  3. using Newtonsoft.Json;
  4. namespace AdService.Service
  5. {
  6. /// <summary>
  7. /// 服务上报服务(3s)
  8. /// </summary>
  9. public class AdReportService : BackgroundService
  10. {
  11. ILogger logger { get; set; }
  12. /// <summary>
  13. /// 服务上报服务
  14. /// </summary>
  15. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  16. {
  17. try
  18. {
  19. StreamReader sr = new StreamReader(Directory.GetCurrentDirectory() + "/appsettings.json");
  20. string json = sr.ReadToEnd();
  21. // 解析 JSON 字符串
  22. var adConfig = JsonConvert.DeserializeObject<AdConfig>(json);
  23. await Task.Run(async () =>
  24. {
  25. while (!stoppingToken.IsCancellationRequested)
  26. {
  27. SvrStateReportDto dto = new SvrStateReportDto()
  28. {
  29. DD = TimeSpan.FromSeconds(1),
  30. SvrType = EnumSvrType.AdCgSvr,
  31. SvrID = "AdService",
  32. BaseHttpAddr = adConfig.BaseHttpAddr,
  33. SwaggerAddr = adConfig.SwaggerAddr,
  34. ReportType = 0,
  35. };
  36. var res = await HttpHelper.PostRequestAsync<CpuCgResDto>(adConfig.AdcReportAddr, dto);
  37. logger.LogInformation("服务上报");
  38. await Task.Delay(TimeSpan.FromSeconds(3));//调用间隔3秒
  39. }
  40. }, stoppingToken);
  41. }catch (Exception ex)
  42. {
  43. logger.LogError("服务上报异常:"+ex.Message);
  44. }
  45. }
  46. }
  47. }