using AdService.Controller.Dto; using DW5S.DTO; using Newtonsoft.Json; namespace AdService.Service { /// /// 服务上报服务(3s) /// public class AdReportService : BackgroundService { ILogger logger { get; set; } /// /// 服务上报服务 /// protected override async Task ExecuteAsync(CancellationToken stoppingToken) { try { StreamReader sr = new StreamReader(Directory.GetCurrentDirectory() + "/appsettings.json"); string json = sr.ReadToEnd(); // 解析 JSON 字符串 var adConfig = JsonConvert.DeserializeObject(json); await Task.Run(async () => { while (!stoppingToken.IsCancellationRequested) { SvrStateReportDto dto = new SvrStateReportDto() { DD = TimeSpan.FromSeconds(1), SvrType = EnumSvrType.AdCgSvr, SvrID = "AdService", BaseHttpAddr = adConfig.BaseHttpAddr, SwaggerAddr = adConfig.SwaggerAddr, ReportType = 0, }; var res = await HttpHelper.PostRequestAsync(adConfig.AdcReportAddr, dto); logger.LogInformation("服务上报"); await Task.Delay(TimeSpan.FromSeconds(3));//调用间隔3秒 } }, stoppingToken); }catch (Exception ex) { logger.LogError("服务上报异常:"+ex.Message); } } } }