Worker.cs 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using Microsoft.Extensions.Hosting;
  5. using Microsoft.Extensions.Logging;
  6. using WebApplication3.Clases;
  7. using System.IO;
  8. using WebApplication3.Controllers;
  9. using WebApplication3.Models;
  10. namespace WebApplication3.Clases
  11. {
  12. public class Worker : BackgroundService
  13. {
  14. private readonly ILogger<Worker> _logger;
  15. private ServicioController servicioController;
  16. private ServiceQueueController serviceQueueController;
  17. public Worker(ILogger<Worker> logger)
  18. {
  19. _logger = logger;
  20. var aquiferContext = new AquiferContext();
  21. servicioController = new ServicioController(aquiferContext);
  22. serviceQueueController = new ServiceQueueController(aquiferContext);
  23. }
  24. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  25. {
  26. Proceso proceso = Proceso.GetInstance();
  27. while (!stoppingToken.IsCancellationRequested)
  28. {
  29. try
  30. {
  31. //logger.LogInformation("Process is started: "+proceso.Started+" and has exited "+proceso.HasExited()+" at: "+ DateTimeOffset.Now);
  32. //_logger.LogInformation("STATE OF PID: "+proceso.GetPid().ToString()+"is "+proceso.HasExited());
  33. if (proceso.Started && proceso.HasExited())
  34. {
  35. proceso.Started = false;
  36. proceso.Detected = true;
  37. int terminado = await servicioController.SetTerminado(proceso.GetPid());
  38. if( terminado > 0)
  39. {
  40. _logger.LogInformation("Process " + proceso.GetPid() + " has terminated", DateTimeOffset.Now);
  41. }
  42. }
  43. } catch (Exception ex)
  44. {
  45. _logger.LogInformation(ex.Message, DateTimeOffset.Now);
  46. }
  47. await Task.Delay(1000, stoppingToken);
  48. }
  49. }
  50. public void LogInfo(string msg)
  51. {
  52. _logger.LogInformation(msg);
  53. }
  54. }
  55. }