123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- using Microsoft.Extensions.Hosting;
- using Microsoft.Extensions.Logging;
- using WebApplication3.Clases;
- using System.IO;
- using WebApplication3.Controllers;
- using WebApplication3.Models;
-
- namespace WebApplication3.Clases
- {
- public class Worker : BackgroundService
- {
- private readonly ILogger<Worker> _logger;
- private ServicioController servicioController;
- private ServiceQueueController serviceQueueController;
-
- public Worker(ILogger<Worker> logger)
- {
- _logger = logger;
-
- var aquiferContext = new AquiferContext();
- servicioController = new ServicioController(aquiferContext);
- serviceQueueController = new ServiceQueueController(aquiferContext);
- }
-
- protected override async Task ExecuteAsync(CancellationToken stoppingToken)
- {
-
- Proceso proceso = Proceso.GetInstance();
-
- while (!stoppingToken.IsCancellationRequested)
- {
-
- try
- {
- //logger.LogInformation("Process is started: "+proceso.Started+" and has exited "+proceso.HasExited()+" at: "+ DateTimeOffset.Now);
- //_logger.LogInformation("STATE OF PID: "+proceso.GetPid().ToString()+"is "+proceso.HasExited());
- if (proceso.Started && proceso.HasExited())
- {
- proceso.Started = false;
- proceso.Detected = true;
-
- int terminado = await servicioController.SetTerminado(proceso.GetPid());
-
- if( terminado > 0)
- {
- _logger.LogInformation("Process " + proceso.GetPid() + " has terminated", DateTimeOffset.Now);
- }
-
- }
- } catch (Exception ex)
- {
- _logger.LogInformation(ex.Message, DateTimeOffset.Now);
- }
- await Task.Delay(1000, stoppingToken);
- }
- }
-
- public void LogInfo(string msg)
- {
- _logger.LogInformation(msg);
- }
- }
- }
|