Review AppUrl base x siti CORE

Divisione aree Redis tra app (x TaskMan in particolare)
 Test apertura app
This commit is contained in:
Samuele Locatelli
2024-10-28 16:57:52 +01:00
parent d48ba9deb0
commit 2346c67f3a
47 changed files with 462 additions and 217 deletions
+51 -46
View File
@@ -61,6 +61,7 @@ namespace MP.TaskMan.Services
// sistemo
DataSource = connStrParams["Server"];
DataBase = connStrParams["Database"];
RedisBaseKey= $"MP:TaskMan:{DataSource}:{DataBase}";
}
// conf rest call service
@@ -101,46 +102,50 @@ namespace MP.TaskMan.Services
{
Task = $"TaskId: {TaskRec.TaskId} | {TaskRec.TType}",
ExecResult = -1,
TextResult = "Task Not recognized"
TextResult = TaskRec.Enabled ? "Task Not Recognized" : "Task Not Enabled for Execution"
};
// verifico tipo di task ed eseguo di conseguenza...
switch (TaskRec.TType)
// in primis verifica che SIA abilitato...
if (TaskRec.Enabled)
{
//case Task2ExeType.ND:
// break;
//case Task2ExeType.Exe:
// break;
//case Task2ExeType.SqlCommand:
// break;
case Task2ExeType.SqlStored:
answ = MLController.ExecuteSqlTask(TaskRec.TaskId, SchedNext);
break;
case Task2ExeType.RestCallGet:
DateTime dtStart = DateTime.Now;
// in primis testo la chiamata al servizio Health
string rAnsw = await RCallService.CheckServer();
// se ok effettuo vera chiamata...
if (rAnsw.ToUpper() == "OK")
{
var callResp = await RCallService.CallRestGet(TaskRec.Command, TaskRec.Args);
DateTime dtEnd = DateTime.Now;
TaskExecModel tExeMod = new TaskExecModel()
// verifico tipo di task ed eseguo di conseguenza...
switch (TaskRec.TType)
{
//case Task2ExeType.ND:
// break;
//case Task2ExeType.Exe:
// break;
//case Task2ExeType.SqlCommand:
// break;
case Task2ExeType.SqlStored:
answ = MLController.ExecuteSqlTask(TaskRec.TaskId, SchedNext);
break;
case Task2ExeType.RestCallGet:
DateTime dtStart = DateTime.Now;
// in primis testo la chiamata al servizio Health
string rAnsw = await RCallService.CheckServer();
// se ok effettuo vera chiamata...
if (rAnsw.ToUpper() == "OK")
{
DtEnd = dtEnd,
DtStart = dtStart,
IsError = callResp.StatusCode != System.Net.HttpStatusCode.OK,
TaskId = TaskRec.TaskId,
Result = $"{callResp.Content}".Replace("\"", ""),
};
// salvo su DB
answ = MLController.TaskExecSaveExecuted(TaskRec.TaskId, SchedNext, tExeMod);
}
break;
default:
break;
var callResp = await RCallService.CallRestGet(TaskRec.Command, TaskRec.Args);
DateTime dtEnd = DateTime.Now;
TaskExecModel tExeMod = new TaskExecModel()
{
DtEnd = dtEnd,
DtStart = dtStart,
IsError = callResp.StatusCode != System.Net.HttpStatusCode.OK,
TaskId = TaskRec.TaskId,
Result = $"{callResp.Content}".Replace("\"", ""),
};
// salvo su DB
answ = MLController.TaskExecSaveExecuted(TaskRec.TaskId, SchedNext, tExeMod);
}
break;
default:
break;
}
// svuoto cache!
await FlushCache();
}
// svuoto cache!
await FlushCache("Task");
return answ;
}
@@ -150,18 +155,18 @@ namespace MP.TaskMan.Services
/// <returns></returns>
public async Task<bool> FlushCache()
{
RedisValue pattern = new RedisValue($"{redisBaseKey}:*");
RedisValue pattern = new RedisValue($"{RedisBaseKey}:*");
bool answ = await ExecFlushRedisPattern(pattern);
return answ;
}
/// <summary>
/// Pulizia cache Redis per chiave specifica (da redisBaseKey...)
/// Pulizia cache Redis per chiave specifica (da RedisBaseKey...)
/// </summary>
/// <returns></returns>
public async Task<bool> FlushCache(string KeyReq)
{
RedisValue pattern = new RedisValue($"{redisBaseKey}:{KeyReq}:*");
RedisValue pattern = new RedisValue($"{RedisBaseKey}:{KeyReq}:*");
bool answ = await ExecFlushRedisPattern(pattern);
return answ;
}
@@ -199,7 +204,7 @@ namespace MP.TaskMan.Services
List<TaskExecModel> result = new List<TaskExecModel>();
// cerco in redis...
DateTime adesso = DateTime.Now;
string currKey = $"{redisBaseKey}:Task:ExecList:{TaskId}:{adesso:yyMMdd}:{adesso:HHmm}:{maxRec}";
string currKey = $"{RedisBaseKey}:Task:ExecList:{TaskId}:{adesso:yyMMdd}:{adesso:HHmm}:{maxRec}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
@@ -237,7 +242,7 @@ namespace MP.TaskMan.Services
List<TaskListModel> result = new List<TaskListModel>();
// cerco in redis...
DateTime adesso = DateTime.Now;
string currKey = $"{redisBaseKey}:Task:List:{TType}";
string currKey = $"{RedisBaseKey}:Task:List:{TType}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
@@ -277,7 +282,7 @@ namespace MP.TaskMan.Services
{
bool dbResult = MLController.TaskListMove(rec2upd, moveUp);
// svuoto cache!
await FlushCache("Task");
await FlushCache();
return await Task.FromResult(dbResult);
}
@@ -290,7 +295,7 @@ namespace MP.TaskMan.Services
{
bool dbResult = MLController.TaskListUpsert(rec2upd);
// svuoto cache!
await FlushCache("Task");
await FlushCache();
return dbResult;
}
@@ -320,11 +325,11 @@ namespace MP.TaskMan.Services
private Dictionary<string, string> connStrParams = new Dictionary<string, string>();
private string DataBase = "";
private string DataBase { get; set; } = "";
private string DataSource = "";
private string DataSource { get; set; } = "";
private string redisBaseKey = "MP:TASK";
private string RedisBaseKey { get; set; } = "MP:TASK";
#endregion Private Fields