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);
}
}
}
}