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.
 
 
 

55 lines
1.6 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. using Microsoft.Extensions.Hosting;
  7. using Microsoft.Extensions.Logging;
  8. using System.Text.Json;
  9. using JT808.Gateway.Abstractions.Configurations;
  10. using JT808.Gateway.WebApiClientTool;
  11. namespace JT808.Gateway.QueueHosting.Jobs
  12. {
  13. public class CallHttpClientJob : IHostedService
  14. {
  15. private readonly ILogger Logger;
  16. private JT808HttpClient jT808HttpClient;
  17. public CallHttpClientJob(
  18. ILoggerFactory loggerFactory,
  19. JT808HttpClient jT808HttpClient)
  20. {
  21. Logger = loggerFactory.CreateLogger<CallHttpClientJob>();
  22. this.jT808HttpClient = jT808HttpClient;
  23. }
  24. public Task StartAsync(CancellationToken cancellationToken)
  25. {
  26. Task.Run(async() =>
  27. {
  28. while (!cancellationToken.IsCancellationRequested)
  29. {
  30. try
  31. {
  32. var result2 = await jT808HttpClient.GetTcpSessionAll();
  33. Logger.LogInformation($"[GetTcpSessionAll]:{JsonSerializer.Serialize(result2)}");
  34. }
  35. catch (Exception ex)
  36. {
  37. Logger.LogError(ex, "Call HttpClient Error");
  38. }
  39. Thread.Sleep(3000);
  40. }
  41. }, cancellationToken);
  42. return Task.CompletedTask;
  43. }
  44. public Task StopAsync(CancellationToken cancellationToken)
  45. {
  46. return Task.CompletedTask;
  47. }
  48. }
  49. }