diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs index 0426e888..53d0711a 100644 --- a/MP.SPEC/Data/MpDataService.cs +++ b/MP.SPEC/Data/MpDataService.cs @@ -286,14 +286,6 @@ namespace MP.SPEC.Data redisConn.Dispose(); } - /// - /// Richiesta attivazione --> sposto avanti 1 minuto il periodo limite x fast running - /// - public void doActivate() - { - fastLimit = DateTime.Now.AddMinutes(1); - } - /// /// Restitusice elenco aziende /// @@ -419,7 +411,6 @@ namespace MP.SPEC.Data TimeSpan ts = stopWatch.Elapsed; Log.Debug($"MacchineGetAll | Read from {readType}: {ts.TotalMilliseconds}ms"); return result; - //return Task.FromResult(dbController.MacchineGetAll()); } /// @@ -457,40 +448,6 @@ namespace MP.SPEC.Data TimeSpan ts = stopWatch.Elapsed; Log.Debug($"MacchineWithFlux | Read from {readType}: {ts.TotalMilliseconds}ms"); return result; - //return Task.FromResult(dbController.MacchineWithFlux()); - } - - public async Task> MseGetAll() - { - int maxAge = 2000; - int.TryParse(_configuration.GetValue("ServerConf:maxAge"), out maxAge); - Stopwatch stopWatch = new Stopwatch(); - stopWatch.Start(); - List? result = new List(); - // cerco in redis... - RedisValue rawData = await redisDb.StringGetAsync(redisMseKey); - if (!string.IsNullOrEmpty($"{rawData}")) - { - result = JsonConvert.DeserializeObject>($"{rawData}"); - stopWatch.Stop(); - TimeSpan ts = stopWatch.Elapsed; - Log.Debug($"MseGetAll | Read from REDIS: {ts.TotalMilliseconds}ms"); - } - else - { - result = await Task.FromResult(dbController.MseGetAll(maxAge)); - // serializzp e salvo... - rawData = JsonConvert.SerializeObject(result); - await redisDb.StringSetAsync(redisMseKey, rawData, TimeSpan.FromMilliseconds(maxAge)); - stopWatch.Stop(); - TimeSpan ts = stopWatch.Elapsed; - Log.Debug($"MseGetAll | Read from DB: {ts.TotalMilliseconds}ms"); - } - if (result == null) - { - result = new List(); - } - return result; } /// @@ -555,82 +512,32 @@ namespace MP.SPEC.Data #region Private Fields + private const string redisConfKey = "MP:SPEC:Cache:Config"; + private const string redisFluxByMac = "MP:SPEC:Cache:FluxByMac"; + private const string redisMacByFlux = "MP:SPEC:Cache:MacByFlux"; + private const string redisMacList = "MP:SPEC:Cache:MacList"; + private const string redisStatoCom = "MP:SPEC:Cache:StatoCom"; + private const string redisTipoArt = "MP:SPEC:Cache:TipoArt"; private static IConfiguration _configuration = null!; private static ILogger _logger = null!; - private static System.Timers.Timer fastTimer = new System.Timers.Timer(4000); - - private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); - - /// - /// Limite in formato data-ora per inviare dati rapidamente (incrementato come now + 1 min - /// ad ogni chiamata client) - /// - private DateTime fastLimit = DateTime.Now; - - private int fastRefreshMs = 1000; - - private string redisConfKey = "MP:MON:Cache:Config"; + private static Logger Log = LogManager.GetCurrentClassLogger(); /// /// Oggetto per connessione a REDIS /// private ConnectionMultiplexer redisConn = null!; - //ISubscriber sub = redis.GetSubscriber(); /// /// Oggetto DB redis da impiegare x chiamate R/W /// private IDatabase redisDb = null!; - private string redisFluxByMac = "MP:MON:Cache:FluxByMac"; - private string redisMseKey = "MP:MON:Cache:MSE"; - private string redisStatoCom = "MP:MON:Cache:StatoCom"; - private string redisTipoArt = "MP:MON:Cache:TipoArt"; - private string redisMacList = "MP:MON:Cache:MacList"; - private string redisMacByFlux = "MP:MON:Cache:MacByFlux"; - #endregion Private Fields #region Private Methods - private void ElapsedFastTimer(object? source, System.Timers.ElapsedEventArgs e) - { - var pUpd = Task.Run(async () => - { - // secondi pari --> blink, secondi dispari --> ricarica - DateTime adesso = DateTime.Now; - int resto = 0; - Math.DivRem(adesso.Second, 2, out resto); - if (resto == 0) - { - // invio in channel blink il segnale - blinkPipe.sendMessage("true"); - Log.Debug("Elapsed Fast Timer Blink"); - } - else - { - // invio in channel blink segnale false - blinkPipe.sendMessage("false"); - // rileggo dati... - var newData = await MseGetAll(); - // invio tramite la pipe... - dataPipe.sendMessage(JsonConvert.SerializeObject(newData)); - Log.Debug("Elapsed Fast Timer reload"); - } - }); - pUpd.Wait(); - } - - private void startTimers() - { - fastTimer = new System.Timers.Timer(fastRefreshMs); - fastTimer.Elapsed += ElapsedFastTimer; - fastTimer.Enabled = true; - fastTimer.Start(); - } - /// /// Prova a caricare da file la conf degli IOB se presente ///