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;
}
///