From 04cc2aa538644d598c167230951607a38dac8ae8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 29 Jan 2024 08:49:16 +0100 Subject: [PATCH] Rrefresh reset componenti --- MP-TAB3/Components/CmpFooter.razor.cs | 5 ++ MP-TAB3/Components/MseSampler.razor.cs | 5 ++ MP-TAB3/Components/ParamsMan.razor.cs | 6 +- MP-TAB3/MP-TAB3.csproj | 2 +- MP-TAB3/Pages/StatusMap.razor.cs | 33 ++++++----- MP-TAB3/Resources/ChangeLog.html | 2 +- MP-TAB3/Resources/VersNum.txt | 2 +- MP-TAB3/Resources/manifest.xml | 2 +- MP.Data/Services/ListSelectDataSrv.cs | 5 +- MP.Data/Services/MessageService.cs | 13 ++++- MP.Data/Services/OrderDataSrv.cs | 3 + MP.Data/Services/StatusData.cs | 78 +++++++++++++++----------- MP.Data/Services/TabDataService.cs | 3 + 13 files changed, 102 insertions(+), 57 deletions(-) diff --git a/MP-TAB3/Components/CmpFooter.razor.cs b/MP-TAB3/Components/CmpFooter.razor.cs index 51794718..eecdb6cc 100644 --- a/MP-TAB3/Components/CmpFooter.razor.cs +++ b/MP-TAB3/Components/CmpFooter.razor.cs @@ -124,6 +124,11 @@ namespace MP_TAB3.Components protected void StartTimer() { + if (aTimer != null) + { + aTimer.Stop(); + aTimer.Dispose(); + } int tOutPeriod = 1000; aTimer = new System.Timers.Timer(tOutPeriod); aTimer.Elapsed += ElapsedTimer; diff --git a/MP-TAB3/Components/MseSampler.razor.cs b/MP-TAB3/Components/MseSampler.razor.cs index bad951a8..5e75615a 100644 --- a/MP-TAB3/Components/MseSampler.razor.cs +++ b/MP-TAB3/Components/MseSampler.razor.cs @@ -92,6 +92,11 @@ namespace MP_TAB3.Components protected void StartTimer() { + if (aTimer != null) + { + aTimer.Stop(); + aTimer.Dispose(); + } aTimer = new System.Timers.Timer(fastRefreshMs); aTimer.Elapsed += ElapsedTimer; aTimer.Enabled = true; diff --git a/MP-TAB3/Components/ParamsMan.razor.cs b/MP-TAB3/Components/ParamsMan.razor.cs index 7e087bcd..27b00ecc 100644 --- a/MP-TAB3/Components/ParamsMan.razor.cs +++ b/MP-TAB3/Components/ParamsMan.razor.cs @@ -121,7 +121,11 @@ namespace MP_TAB3.Components protected void StartTimer() { - //int.TryParse(Configuration["ReloadStatusTimer"], out tOutPeriod); + if (aTimer != null) + { + aTimer.Stop(); + aTimer.Dispose(); + } aTimer = new System.Timers.Timer(dtTimerTabParam); aTimer.Elapsed += ElapsedTimer; aTimer.Enabled = true; diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj index 1845fa90..3067e8e9 100644 --- a/MP-TAB3/MP-TAB3.csproj +++ b/MP-TAB3/MP-TAB3.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2401.2616 + 6.16.2401.2618 enable MP_TAB3 diff --git a/MP-TAB3/Pages/StatusMap.razor.cs b/MP-TAB3/Pages/StatusMap.razor.cs index 61856a26..fdaf2a46 100644 --- a/MP-TAB3/Pages/StatusMap.razor.cs +++ b/MP-TAB3/Pages/StatusMap.razor.cs @@ -9,8 +9,18 @@ using System.Runtime.ExceptionServices; namespace MP_TAB3.Pages { - public partial class StatusMap: IDisposable + public partial class StatusMap : IDisposable { + #region Public Methods + + public void Dispose() + { + ListMSE = null; + GC.Collect(); + } + + #endregion Public Methods + #region Public Classes public class WindowDimension @@ -23,12 +33,6 @@ namespace MP_TAB3.Pages #endregion Public Properties } - public void Dispose() - { - ListMSE = null; - GC.Collect(); - } - #endregion Public Classes #region Protected Fields @@ -81,12 +85,6 @@ namespace MP_TAB3.Pages #region Protected Methods - protected async Task getWDim() - { - var dimension = await JSRuntime.InvokeAsync("getWindowDimensions"); - Height = dimension.Height; - Width = dimension.Width; - } /// /// calcola num blocchi max data dimensione larghezza /// @@ -108,6 +106,13 @@ namespace MP_TAB3.Pages return answ; } + protected async Task getWDim() + { + var dimension = await JSRuntime.InvokeAsync("getWindowDimensions"); + Height = dimension.Height; + Width = dimension.Width; + } + protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) @@ -153,8 +158,6 @@ namespace MP_TAB3.Pages private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); - private static System.Timers.Timer slowTimer = new System.Timers.Timer(300000); - #endregion Private Fields #region Private Properties diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html index 2ea78b00..1b530b44 100644 --- a/MP-TAB3/Resources/ChangeLog.html +++ b/MP-TAB3/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2401.2616

+

Versione: 6.16.2401.2618


Note di rilascio:
  • diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt index 5a7a59ab..1eb38aa8 100644 --- a/MP-TAB3/Resources/VersNum.txt +++ b/MP-TAB3/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2401.2616 +6.16.2401.2618 diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml index d3e0dec0..86bcc5f6 100644 --- a/MP-TAB3/Resources/manifest.xml +++ b/MP-TAB3/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2401.2616 + 6.16.2401.2618 https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html false diff --git a/MP.Data/Services/ListSelectDataSrv.cs b/MP.Data/Services/ListSelectDataSrv.cs index 1bbf1fda..934d05aa 100644 --- a/MP.Data/Services/ListSelectDataSrv.cs +++ b/MP.Data/Services/ListSelectDataSrv.cs @@ -25,7 +25,6 @@ namespace MP.Data.Services public ListSelectDataSrv(IConfiguration configuration) { _configuration = configuration; - // setup compoenti REDIS redisConn = ConnectionMultiplexer.Connect(_configuration.GetConnectionString("Redis")); redisDb = redisConn.GetDatabase(); @@ -101,8 +100,10 @@ namespace MP.Data.Services { // Clear database controller dbController.Dispose(); + // redis dispose + redisConn = null; + redisDb = null; } - /// /// Pulizia cache Redis (tutta) /// diff --git a/MP.Data/Services/MessageService.cs b/MP.Data/Services/MessageService.cs index b2f6fabc..8f3c661b 100644 --- a/MP.Data/Services/MessageService.cs +++ b/MP.Data/Services/MessageService.cs @@ -2,6 +2,7 @@ using Blazored.SessionStorage; using EgwCoreLib.Utils; using Microsoft.Extensions.Configuration; +using MP.Data.Controllers; using MP.Data.DatabaseModels; using MP.Data.DTO; using Newtonsoft.Json; @@ -14,12 +15,14 @@ using System.Threading.Tasks; namespace MP.Data.Services { - public class MessageService + public class MessageService : IDisposable { #region Public Fields public const string KeyCommDtRif = "DtRifComm"; + public const string KeyCommText = "ValComm"; + public int orarioDip = 0; #endregion Public Fields @@ -95,6 +98,7 @@ namespace MP.Data.Services } public DateTime dtLastAction { get; set; } = DateTime.Now; + public DateTime dtLastSave { get; set; } = DateTime.Now; public string LastIdxMacchina @@ -238,6 +242,13 @@ namespace MP.Data.Services return SteamCrypto.DecryptString(encData, Constants.passPhrase); } + public void Dispose() + { + // redis dispose + redisConn = null; + redisDb = null; + } + public async Task DoLogIn(string decodValue, bool saveOpr) { bool answ = false; diff --git a/MP.Data/Services/OrderDataSrv.cs b/MP.Data/Services/OrderDataSrv.cs index 711f28cd..6d8fb6d4 100644 --- a/MP.Data/Services/OrderDataSrv.cs +++ b/MP.Data/Services/OrderDataSrv.cs @@ -109,6 +109,9 @@ namespace MP.Data.Services { // Clear database controller dbController.Dispose(); + // redis dispose + redisConn = null; + redisDb = null; } diff --git a/MP.Data/Services/StatusData.cs b/MP.Data/Services/StatusData.cs index 3ac19b84..365c88f2 100644 --- a/MP.Data/Services/StatusData.cs +++ b/MP.Data/Services/StatusData.cs @@ -79,6 +79,9 @@ namespace MP.Data.Services { // Clear database controller dbController.Dispose(); + // redis dispose + redisConn = null; + redisDb = null; } /// @@ -112,35 +115,6 @@ namespace MP.Data.Services return Task.FromResult(dbController.MacchineGetAll()); } - public async Task> MseGetAll(bool forceDb = false) - { - Stopwatch sw = new Stopwatch(); - string source = "DB"; - sw.Start(); - List? result = new List(); - // cerco in redis... - RedisValue rawData = redisDb.StringGet(Constants.redisMseKey); - if (rawData.HasValue && !forceDb) - { - result = JsonConvert.DeserializeObject>($"{rawData}"); - source = "REDIS"; - } - else - { - result = await Task.FromResult(dbController.MseGetAll(maxAge)); - // serializzp e salvo... - rawData = JsonConvert.SerializeObject(result); - await redisDb.StringSetAsync(Constants.redisMseKey, rawData, TimeSpan.FromMilliseconds(maxAge)); - } - if (result == null) - { - result = new List(); - } - sw.Stop(); - Log.Debug($"MseGetAll | {source} | {sw.Elapsed.TotalMilliseconds}ms"); - return result; - } - /// /// Restituisce numPezzi (ultimo) x macchina /// @@ -155,6 +129,7 @@ namespace MP.Data.Services } return answ; } + /// /// Salva numPezzi x macchina /// @@ -190,6 +165,7 @@ namespace MP.Data.Services } return answ; } + /// /// Salva numPezzi x macchina /// @@ -211,8 +187,34 @@ namespace MP.Data.Services return answ; } - private Dictionary MachineNumPz { get; set; } = new Dictionary(); - private Dictionary MachineProdStatus { get; set; } = new Dictionary(); + public async Task> MseGetAll(bool forceDb = false) + { + Stopwatch sw = new Stopwatch(); + string source = "DB"; + sw.Start(); + List? result = new List(); + // cerco in redis... + RedisValue rawData = redisDb.StringGet(Constants.redisMseKey); + if (rawData.HasValue && !forceDb) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = await Task.FromResult(dbController.MseGetAll(maxAge)); + // serializzp e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(Constants.redisMseKey, rawData, TimeSpan.FromMilliseconds(maxAge)); + } + if (result == null) + { + result = new List(); + } + sw.Stop(); + Log.Debug($"MseGetAll | {source} | {sw.Elapsed.TotalMilliseconds}ms"); + return result; + } #endregion Public Methods @@ -236,12 +238,20 @@ namespace MP.Data.Services private static IConfiguration _configuration = null!; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); private int maxAge = 2000; -#if false - private string redisMseKey = "MP:MON:Cache:MSE"; -#endif #endregion Private Fields + #region Private Properties + + private Dictionary MachineNumPz { get; set; } = new Dictionary(); + private Dictionary MachineProdStatus { get; set; } = new Dictionary(); + + #endregion Private Properties + +#if false + private string redisMseKey = "MP:MON:Cache:MSE"; +#endif + #region Private Methods /// diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index bbeae229..8f7695fb 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -610,6 +610,9 @@ namespace MP.Data.Services dbTabController.Dispose(); dbIocController.Dispose(); dbInveController.Dispose(); + // redis dispose + redisConn = null; + redisDb = null; } ///