From 798645cb8dc9937dbdfcc77a3c1f33950c9ca783 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 16 Jul 2025 14:02:16 +0200 Subject: [PATCH] Update gestione task: da conf parametrico se usare redis cache o meno (default: no) --- MP.Stats/Controllers/TaskController.cs | 4 ++-- MP.Stats/MP.Stats.csproj | 4 ++-- MP.Stats/Pages/TaskScheduler.razor | 2 +- MP.Stats/Pages/TaskScheduler.razor.cs | 7 ++++++ MP.Stats/Resources/ChangeLog.html | 2 +- MP.Stats/Resources/VersNum.txt | 2 +- MP.Stats/Resources/manifest.xml | 2 +- MP.Stats/appsettings.json | 1 + MP.TaskMan/Services/TaskService.cs | 32 ++++++++++++++++---------- MP.TaskMan/TaskList.razor | 1 - MP.TaskMan/TaskList.razor.cs | 12 +++++++++- 11 files changed, 47 insertions(+), 22 deletions(-) diff --git a/MP.Stats/Controllers/TaskController.cs b/MP.Stats/Controllers/TaskController.cs index c5d46c93..5a6eb406 100644 --- a/MP.Stats/Controllers/TaskController.cs +++ b/MP.Stats/Controllers/TaskController.cs @@ -36,7 +36,7 @@ namespace MP.Stats.Controllers public async Task> ExecuteAndReturnGet() { List answ = new List(); - List listTask = await DService.TaskListAll(TaskMan.Objects.Enums.Task2ExeType.ALL, ""); + List listTask = await DService.TaskListAll(TaskMan.Objects.Enums.Task2ExeType.ALL, false, ""); // verifico SE ci siano task in scadenza... DateTime adesso = DateTime.Now; var task2exe = listTask.Where(x => x.DtNextExec <= adesso).ToList(); @@ -56,7 +56,7 @@ namespace MP.Stats.Controllers [HttpGet("GetList")] public async Task> GetList() { - List answ = await DService.TaskListAll(TaskMan.Objects.Enums.Task2ExeType.ALL, ""); + List answ = await DService.TaskListAll(TaskMan.Objects.Enums.Task2ExeType.ALL, false, ""); return answ; } diff --git a/MP.Stats/MP.Stats.csproj b/MP.Stats/MP.Stats.csproj index ec9d328d..d8691f50 100644 --- a/MP.Stats/MP.Stats.csproj +++ b/MP.Stats/MP.Stats.csproj @@ -4,8 +4,8 @@ net6.0 MP.Stats 826e877c-ba70-4253-84cb-d0b1cafd4440 - 6.16.2507.1611 - 6.16.2507.1611 + 6.16.2507.1613 + 6.16.2507.1613 true $(NoWarn);1591 en diff --git a/MP.Stats/Pages/TaskScheduler.razor b/MP.Stats/Pages/TaskScheduler.razor index 26339b36..670033ad 100644 --- a/MP.Stats/Pages/TaskScheduler.razor +++ b/MP.Stats/Pages/TaskScheduler.razor @@ -1,3 +1,3 @@ @page "/TaskScheduler" - \ No newline at end of file + \ No newline at end of file diff --git a/MP.Stats/Pages/TaskScheduler.razor.cs b/MP.Stats/Pages/TaskScheduler.razor.cs index 3bbf24f7..58c20e18 100644 --- a/MP.Stats/Pages/TaskScheduler.razor.cs +++ b/MP.Stats/Pages/TaskScheduler.razor.cs @@ -11,6 +11,7 @@ using MP.Data.DbModels; using Microsoft.AspNetCore.DataProtection; using MP.TaskMan.Models; using static MP.TaskMan.Objects.Enums; +using Microsoft.Extensions.Configuration; namespace MP.Stats.Pages { @@ -23,6 +24,9 @@ namespace MP.Stats.Pages [Inject] protected MessageService MServ { get; set; } = null!; + [Inject] + protected IConfiguration ConfMan { get; set; } + #endregion Protected Properties #region Protected Methods @@ -32,8 +36,11 @@ namespace MP.Stats.Pages MServ.ShowSearch = true; MServ.PageName = "Task Scheduler"; MServ.PageIcon = "oi oi-clock"; + EnableRedis = ConfMan.GetValue("ServerConf:TaskEnableRedis"); } + private bool EnableRedis = true; + #endregion Protected Methods } } \ No newline at end of file diff --git a/MP.Stats/Resources/ChangeLog.html b/MP.Stats/Resources/ChangeLog.html index 118c5a51..f2b1af10 100644 --- a/MP.Stats/Resources/ChangeLog.html +++ b/MP.Stats/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo statistiche MAPO -

Versione: 6.16.2507.1611

+

Versione: 6.16.2507.1613


Note di rilascio:
    diff --git a/MP.Stats/Resources/VersNum.txt b/MP.Stats/Resources/VersNum.txt index 3ed073f0..47f53dfb 100644 --- a/MP.Stats/Resources/VersNum.txt +++ b/MP.Stats/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2507.1611 +6.16.2507.1613 diff --git a/MP.Stats/Resources/manifest.xml b/MP.Stats/Resources/manifest.xml index 73cc12fb..144c5d85 100644 --- a/MP.Stats/Resources/manifest.xml +++ b/MP.Stats/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2507.1611 + 6.16.2507.1613 https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/MP.Stats.zip https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/ChangeLog.html false diff --git a/MP.Stats/appsettings.json b/MP.Stats/appsettings.json index d247641c..d0c75b18 100644 --- a/MP.Stats/appsettings.json +++ b/MP.Stats/appsettings.json @@ -61,6 +61,7 @@ "FormatDur": "HH:mm.ss.ff", "SpecialConf": { "AppUrl": "/MP/STATS", + "TaskEnableRedis": false, "TaskManConn": "MP.Stats", "RedisBaseConf": "MP:TASK:STATS" }, diff --git a/MP.TaskMan/Services/TaskService.cs b/MP.TaskMan/Services/TaskService.cs index 15093965..e55c55a1 100644 --- a/MP.TaskMan/Services/TaskService.cs +++ b/MP.TaskMan/Services/TaskService.cs @@ -247,7 +247,7 @@ namespace MP.TaskMan.Services else { result = MLController.TaskExecGetFilt(TaskId, maxRec); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(currKey, rawData, FastCache); } @@ -263,10 +263,11 @@ namespace MP.TaskMan.Services /// /// Elenco TaskList gestiti /// - /// - /// + /// Tipo task da recuperare + /// Abilitazioen cache REDIS + /// Valore cercato /// - public async Task> TaskListAll(Task2ExeType TType, string searchVal = "") + public async Task> TaskListAll(Task2ExeType TType, bool enabRedis, string searchVal = "") { // setup parametri costanti string source = "DB"; @@ -275,19 +276,26 @@ namespace MP.TaskMan.Services List? result = new List(); // cerco in redis... DateTime adesso = DateTime.Now; - string currKey = $"{RedisBaseKey}:List:{TType}"; - RedisValue rawData = await redisDb.StringGetAsync(currKey); - if (rawData.HasValue) + if (enabRedis) { - result = JsonConvert.DeserializeObject>($"{rawData}"); - source = "REDIS"; + string currKey = $"{RedisBaseKey}:List:{TType}"; + RedisValue rawData = await redisDb.StringGetAsync(currKey); + if (enabRedis && rawData.HasValue && rawData.Length() > 2) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = MLController.TaskListGetAll(TType); + // serializzo e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(currKey, rawData, FastCache); + } } else { result = MLController.TaskListGetAll(TType); - // serializzp e salvo... - rawData = JsonConvert.SerializeObject(result); - await redisDb.StringSetAsync(currKey, rawData, FastCache); } if (result == null) { diff --git a/MP.TaskMan/TaskList.razor b/MP.TaskMan/TaskList.razor index 1d8418d1..18c659c9 100644 --- a/MP.TaskMan/TaskList.razor +++ b/MP.TaskMan/TaskList.razor @@ -58,7 +58,6 @@ { } - @* *@ } diff --git a/MP.TaskMan/TaskList.razor.cs b/MP.TaskMan/TaskList.razor.cs index b297aabf..09de8099 100644 --- a/MP.TaskMan/TaskList.razor.cs +++ b/MP.TaskMan/TaskList.razor.cs @@ -8,6 +8,16 @@ namespace MP.TaskMan { public partial class TaskList : ComponentBase { + #region Public Properties + + /// + /// Cache Redis abilitata o meno + /// + [Parameter] + public bool RedisEnabled { get; set; } = false; + + #endregion Public Properties + #region Protected Properties [Inject] @@ -237,7 +247,7 @@ namespace MP.TaskMan private async Task ReloadData() { - SearchRecords = await TService.TaskListAll(TypeSel, SearchVal); + SearchRecords = await TService.TaskListAll(TypeSel, RedisEnabled, SearchVal); // suddivido per gruppo e genero relativo display raggruppato ListRecords = SearchRecords .OrderBy(x => x.Group)