using JT808.Gateway.Traffic; using JT808.Protocol.Enums; using JT808.Protocol.Extensions; using JT808.Protocol.MessageBody; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; namespace JT808.Gateway.SimpleServer.Jobs { public class TrafficJob : IHostedService { private readonly IJT808Traffic jT808Traffic; private readonly ILogger Logger; public TrafficJob( ILoggerFactory loggerFactory, IJT808Traffic jT808Traffic) { Logger = loggerFactory.CreateLogger("TrafficJob"); this.jT808Traffic = jT808Traffic; } public Task StartAsync(CancellationToken cancellationToken) { Task.Run(async () => { while (!cancellationToken.IsCancellationRequested) { await Task.Delay(2 * 1000); foreach (var item in jT808Traffic.GetAll()) { Logger.LogDebug($"{item.Item1}-{item.Item2}"); } } }, cancellationToken); return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } } }