You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

38 line
1.5 KiB

  1. using JT808.DotNetty.Core.Services;
  2. using Microsoft.Extensions.Logging;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. namespace JT808.DotNetty.Core.Jobs
  6. {
  7. public class JT808TcpAtomicCouterResetDailyJob : JT808BackgroundService
  8. {
  9. private readonly ILogger<JT808TcpAtomicCouterResetDailyJob> _logger;
  10. private readonly JT808TcpAtomicCounterService _jT808TcpAtomicCounterService;
  11. public JT808TcpAtomicCouterResetDailyJob(
  12. JT808TcpAtomicCounterService jT808TcpAtomicCounterService,
  13. ILoggerFactory loggerFactory)
  14. {
  15. _jT808TcpAtomicCounterService = jT808TcpAtomicCounterService;
  16. _logger =loggerFactory.CreateLogger<JT808TcpAtomicCouterResetDailyJob>();
  17. }
  18. public override string ServiceName => nameof(JT808TcpAtomicCouterResetDailyJob);
  19. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  20. {
  21. _logger.LogInformation($"{ServiceName} is starting.");
  22. stoppingToken.Register(() => _logger.LogInformation($"{ServiceName} background task is stopping."));
  23. while (!stoppingToken.IsCancellationRequested)
  24. {
  25. _logger.LogInformation($"{ServiceName} task doing background work.");
  26. _jT808TcpAtomicCounterService.Reset();
  27. await Task.Delay(DelayTimeSpan, stoppingToken);
  28. }
  29. _logger.LogInformation($"{ServiceName} background task is stopping.");
  30. }
  31. }
  32. }