From c4f5ee2c843e9808e9d1af7c25dc775ca3bb0a59 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 23 Oct 2023 20:23:27 +0200 Subject: [PATCH] Metodo reindex async x evitare timeout( maybe...) --- MP.Data/Controllers/MpSpecController.cs | 6 +++--- MP.SPEC/Data/MpDataService.cs | 2 +- MP.SPEC/Pages/FluxLogStatus.razor | 5 +++++ MP.SPEC/Pages/FluxLogStatus.razor.cs | 7 +++++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs index 408b9179..47117287 100644 --- a/MP.Data/Controllers/MpSpecController.cs +++ b/MP.Data/Controllers/MpSpecController.cs @@ -722,7 +722,7 @@ namespace MP.Data.Controllers /// def: 10 /// def: 50 /// - public bool ForceDbMaint(bool doExec, bool doUpdStat, bool doSave, int minPgCnt, int minAvgFrag, int maxAvgFragReb) + public async Task ForceDbMaint(bool doExec, bool doUpdStat, bool doSave, int minPgCnt, int minAvgFrag, int maxAvgFragReb) { Log.Info($"Inizio ForceDbMaint"); bool fatto = false; @@ -735,9 +735,9 @@ namespace MP.Data.Controllers var pMinAvgFrag = new SqlParameter("@min_avg_fragmentation_in_percent", minAvgFrag); var pMaxAvgFrag = new SqlParameter("@max_avg_fragmentation_per_rebuild", maxAvgFragReb); - var dbResult = dbCtx + var dbResult = await dbCtx .Database - .ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance"); + .ExecuteSqlRawAsync("EXEC man.stp_Utility_Maintanance"); //.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance @FlgExec, @FlgUpdStat, @FlgSave, @min_page_count, @min_avg_fragmentation_in_percent, @max_avg_fragmentation_per_rebuild", pFlgExec, pFlgUpdStat, pFlgSave, pMinPgCnt, pMinAvgFrag, pMaxAvgFrag); fatto = true; } diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs index 591f287a..17cf0722 100644 --- a/MP.SPEC/Data/MpDataService.cs +++ b/MP.SPEC/Data/MpDataService.cs @@ -790,7 +790,7 @@ namespace MP.SPEC.Data /// public async Task ForceDbMaint(bool doExec = true, bool doUpdStat = true, bool doSave = true, int minPgCnt = 1000, int minAvgFrag = 10, int maxAvgFragReb = 50) { - dbController.ForceDbMaint(doExec, doUpdStat, doSave, minPgCnt, minAvgFrag, maxAvgFragReb); + await dbController.ForceDbMaint(doExec, doUpdStat, doSave, minPgCnt, minAvgFrag, maxAvgFragReb); await FlushCacheFluxLog(); } diff --git a/MP.SPEC/Pages/FluxLogStatus.razor b/MP.SPEC/Pages/FluxLogStatus.razor index bb940f4e..754ec856 100644 --- a/MP.SPEC/Pages/FluxLogStatus.razor +++ b/MP.SPEC/Pages/FluxLogStatus.razor @@ -31,9 +31,14 @@
+ @if (isProcessing) { + + } + else if (isReindexing) + { } else diff --git a/MP.SPEC/Pages/FluxLogStatus.razor.cs b/MP.SPEC/Pages/FluxLogStatus.razor.cs index baa2a72a..9a3cbc73 100644 --- a/MP.SPEC/Pages/FluxLogStatus.razor.cs +++ b/MP.SPEC/Pages/FluxLogStatus.razor.cs @@ -95,9 +95,11 @@ namespace MP.SPEC.Pages if (!await JSRuntime.InvokeAsync("confirm", "Manutenzione Database: si tratta di un operazione che puņ richiedere un tempo levato sei sicuro di voler procedere?")) return; - isProcessing = true; + isReindexing = true; + await InvokeAsync(StateHasChanged); await MDataServ.ForceDbMaint(true, true, true, 1000, 10, 50); - isProcessing = false; + isReindexing = false; + await InvokeAsync(StateHasChanged); } protected override async Task OnInitializedAsync() @@ -221,6 +223,7 @@ namespace MP.SPEC.Pages private string idxMaccSel { get; set; } = ""; private bool isProcessing { get; set; } = false; + private bool isReindexing { get; set; } = false; protected double currVal = 0;