using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System.Text.Json; using JT808.Gateway.Abstractions.Configurations; using JT808.Gateway.WebApiClientTool; namespace JT808.Gateway.QueueHosting.Jobs { public class CallHttpClientJob : IHostedService { private readonly ILogger Logger; private JT808HttpClient jT808HttpClient; public CallHttpClientJob( ILoggerFactory loggerFactory, JT808HttpClient jT808HttpClient) { Logger = loggerFactory.CreateLogger(); this.jT808HttpClient = jT808HttpClient; } public Task StartAsync(CancellationToken cancellationToken) { Task.Run(async() => { while (!cancellationToken.IsCancellationRequested) { try { var result2 = await jT808HttpClient.GetTcpSessionAll(); Logger.LogInformation($"[GetTcpSessionAll]:{JsonSerializer.Serialize(result2)}"); } catch (Exception ex) { Logger.LogError(ex, "Call HttpClient Error"); } Thread.Sleep(3000); } }, cancellationToken); return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } } }