AipServiceSub.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. 
  2. using AipGateway.API.Application.Configurations;
  3. using System.Diagnostics;
  4. namespace AipGateway.AIP.Service.WindowsService
  5. {
  6. public class AipServiceSub : BackgroundService
  7. {
  8. private readonly ILogger<AipServiceSub> _log;
  9. private readonly AipSettings _aipSettings;
  10. private static WebApplicationBuilder? _builder;
  11. public AipServiceSub(ILogger<AipServiceSub> log, AipSettings aipSettings)
  12. {
  13. _log = log;
  14. _aipSettings = aipSettings;
  15. }
  16. public static void Start(AipSettings aipSettings)
  17. {
  18. }
  19. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  20. {
  21. stoppingToken.Register(() => _log.LogInformation("ServiceA is stopping."));
  22. while (!stoppingToken.IsCancellationRequested)
  23. {
  24. var process = Process.GetProcessById(_aipSettings.ProcessId);
  25. if (process == null)
  26. {
  27. _log.LogError("Aip Process Terminated: {0}.", _aipSettings.ProcessId);
  28. Process.GetCurrentProcess().Kill();
  29. }
  30. await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
  31. }
  32. }
  33. public override void Dispose()
  34. {
  35. base.Dispose();
  36. }
  37. }
  38. }