diff --git a/Maat.Data/Controllers/MsSqlController.cs b/Maat.Data/Controllers/MsSqlController.cs index 620892b..f08af40 100644 --- a/Maat.Data/Controllers/MsSqlController.cs +++ b/Maat.Data/Controllers/MsSqlController.cs @@ -171,7 +171,10 @@ namespace Maat.Data.Controllers } catch (Exception exc) { - Log.Error($"{tName} | Eccezione in ExecuteSqlTask{Environment.NewLine}Call eseguita:{Environment.NewLine}{sqlCall}{Environment.NewLine}------- Stack Eccezione -------{Environment.NewLine}{exc}"); + string excMsg = $"{tName} | Eccezione in ExecuteSqlTask{Environment.NewLine}Call eseguita:{Environment.NewLine}{sqlCall}{Environment.NewLine}------- Stack Eccezione -------{Environment.NewLine}{exc}"; + callRes.ExecResult = -1; + callRes.TextResult = excMsg; + Log.Error(excMsg); } } return callRes; diff --git a/Maat.Data/DbModels/TaskListModel.cs b/Maat.Data/DbModels/TaskListModel.cs index 037b0a7..69f845c 100644 --- a/Maat.Data/DbModels/TaskListModel.cs +++ b/Maat.Data/DbModels/TaskListModel.cs @@ -20,11 +20,21 @@ namespace Maat.Data.DbModels [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int TaskId { get; set; } = 0; + /// + /// Gruppo task (per gestione precedenze e semaforo exec) + /// + public int Group { get; set; } = 1; + /// /// Ordinale x esecuzione /// public int Ordinal { get; set; } = 0; + /// + /// Stato Task abilitato / disabilitato + /// + public bool Enabled { get; set; } = false; + /// /// Nome Task /// diff --git a/Maat.Data/Services/MsSqlTaskService.cs b/Maat.Data/Services/MsSqlTaskService.cs index c29f86e..e85e98a 100644 --- a/Maat.Data/Services/MsSqlTaskService.cs +++ b/Maat.Data/Services/MsSqlTaskService.cs @@ -67,19 +67,45 @@ namespace Maat.Data.Services List listTask = TaskListAll(tName, Enums.Task2ExeType.ND, ""); // verifico SE ci siano task in scadenza... DateTime adesso = DateTime.Now; - List task2exe = listTask.Where(x => x.DtNextExec <= adesso).ToList(); + List task2exe = listTask.Where(x => x.Enabled && x.DtNextExec <= adesso).ToList(); + int numDone = 0; if (task2exe != null && task2exe.Count > 0) { Log.Info($"{tName} | Found {task2exe.Count} task to execute"); + // suddivisione x gruppi + var ListGrouped = task2exe + .OrderBy(x => x.Group) + .ThenBy(x => x.Ordinal) + .GroupBy(x => x.Group) + .ToDictionary(g => g.Key, g => g.ToList()); + + // ciclo, e all'interno del gruppo SE non passa uno step si ferma.... + foreach (var taskGroup in ListGrouped) + { + foreach (var taskRec in taskGroup.Value) + { + TaskResultModel result = ExecuteTask(taskRec); + answ.Add(result); + numDone++; + // SE non eseguito --> esce, come anche se passato timeout (e ultima esecuzione รจ prima della scadenza.. + if (result.ExecResult < 0) + { + break; + } + } + } + +#if false foreach (var taskRec in task2exe) { TaskResultModel result = ExecuteTask(taskRec); answ.Add(result); - } + } +#endif } else { - Log.Trace($"{tName} | Chiamata CheckExecute"); + Log.Trace($"{tName} | Chiamata CheckExecute | eseguiti {numDone} task"); } // resituisco return answ; diff --git a/Maat.Runner/Maat.Runner.csproj b/Maat.Runner/Maat.Runner.csproj index 34f1cce..4171154 100644 --- a/Maat.Runner/Maat.Runner.csproj +++ b/Maat.Runner/Maat.Runner.csproj @@ -5,7 +5,7 @@ net6.0 enable enable - 1.2.2506.0509 + 1.2.2507.2112 diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index f3f1c5e..6e9a841 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Maat.Installer - Manager for Application & Applicative Task -

Versione: 1.2.2506.0509

+

Versione: 1.2.2507.2112


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index 11a1e26..7ede6d8 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -1.2.2506.0509 +1.2.2507.2112 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 3652a46..42bdf25 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.2.2506.0509 + 1.2.2507.2112 http://nexus.steamware.net/repository/SWS/Maat.Installer/stable/LAST/Maat.Installer.msi http://nexus.steamware.net/repository/SWS/Maat.Installer/stable/LAST/ChangeLog.html false