using JT808.DotNetty.Core.Services; using Microsoft.Extensions.Logging; using System.Threading; using System.Threading.Tasks; namespace JT808.DotNetty.Core.Jobs { public class JT808TcpAtomicCouterResetDailyJob : JT808BackgroundService { private readonly ILogger<JT808TcpAtomicCouterResetDailyJob> _logger; private readonly JT808TcpAtomicCounterService _jT808TcpAtomicCounterService; public JT808TcpAtomicCouterResetDailyJob( JT808TcpAtomicCounterService jT808TcpAtomicCounterService, ILoggerFactory loggerFactory) { _jT808TcpAtomicCounterService = jT808TcpAtomicCounterService; _logger =loggerFactory.CreateLogger<JT808TcpAtomicCouterResetDailyJob>(); } public override string ServiceName => nameof(JT808TcpAtomicCouterResetDailyJob); protected override async Task ExecuteAsync(CancellationToken stoppingToken) { _logger.LogInformation($"{ServiceName} is starting."); stoppingToken.Register(() => _logger.LogInformation($"{ServiceName} background task is stopping.")); while (!stoppingToken.IsCancellationRequested) { _logger.LogInformation($"{ServiceName} task doing background work."); _jT808TcpAtomicCounterService.Reset(); await Task.Delay(DelayTimeSpan, stoppingToken); } _logger.LogInformation($"{ServiceName} background task is stopping."); } } }