Update x gestione calcoli stats in Redis
This commit is contained in:
@@ -551,16 +551,16 @@ namespace MP.Data.Controllers
|
||||
/// <param name="currPeriodo"></param>
|
||||
/// <param name="valMode"></param>
|
||||
/// <param name="intReq"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> FluxLogDataRedux(string idxMaccSel, List<string> fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq, int maxItem)
|
||||
/// <returns>Restitusice list dei record statistiche raccolti (da integrare a quelli rpesenti in Redis...)</returns>
|
||||
public async Task<List<DTO.StatDedupDTO>> FluxLogDataRedux(string idxMaccSel, List<string> fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq, int maxItem)
|
||||
{
|
||||
List<DTO.StatDedupDTO> procStats = new List<DTO.StatDedupDTO>();
|
||||
Log.Info($"Inizio FluxLogDataRedux | idxMaccSel: {idxMaccSel} | periodo: {currPeriodo.Inizio} --> {currPeriodo.Fine}");
|
||||
bool fatto = false;
|
||||
TimeSpan step = TimeSpan.FromHours(1);
|
||||
switch (intReq)
|
||||
{
|
||||
case Enum.DataInterval.minute:
|
||||
step = TimeSpan.FromMinutes(1.00/ maxItem);
|
||||
step = TimeSpan.FromMinutes(1.00 / maxItem);
|
||||
break;
|
||||
case Enum.DataInterval.hour:
|
||||
step = TimeSpan.FromHours(1.00 / maxItem);
|
||||
@@ -571,7 +571,6 @@ namespace MP.Data.Controllers
|
||||
default:
|
||||
break;
|
||||
}
|
||||
List<LogFLDedupModel> procStats = new List<LogFLDedupModel>();
|
||||
|
||||
// setup parametri costanti x stored
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMaccSel);
|
||||
@@ -628,9 +627,21 @@ namespace MP.Data.Controllers
|
||||
listPeriodi.Add(new Periodo(dtCursStart, recEnd.dtEvento));
|
||||
break;
|
||||
case Enum.ValSelection.Center:
|
||||
var recCent = currFlux.Skip(numRec / 2).FirstOrDefault();
|
||||
// salvo 2 periodi!
|
||||
int idx = 1;
|
||||
// per iniziare mi metto a 1/(n+1) rec come step
|
||||
var recCent = currFlux.Skip(idx / (maxItem + 1)).FirstOrDefault();
|
||||
listPeriodi.Add(new Periodo(dtCursStart, recCent.dtEvento));
|
||||
// salvo restanti periodi (se > 1)!
|
||||
if (maxItem > 1)
|
||||
{
|
||||
for (int i = 2; i < maxItem; i++)
|
||||
{
|
||||
DateTime dtInizio = recCent.dtEvento;
|
||||
recCent = currFlux.Skip(i / (maxItem + 1)).FirstOrDefault();
|
||||
listPeriodi.Add(new Periodo(dtInizio, recCent.dtEvento));
|
||||
}
|
||||
}
|
||||
// aggiungo ultimo...
|
||||
listPeriodi.Add(new Periodo(recCent.dtEvento.AddSeconds(1), dtCursEnd));
|
||||
break;
|
||||
default:
|
||||
@@ -656,21 +667,24 @@ namespace MP.Data.Controllers
|
||||
}
|
||||
// fermo cronometro e salvo su DB...
|
||||
sw.Stop();
|
||||
LogFLDedupModel currStat = new LogFLDedupModel()
|
||||
DTO.StatDedupDTO currStat = new DTO.StatDedupDTO()
|
||||
{
|
||||
IdxMacchina = idxMaccSel,
|
||||
CodFlux = item,
|
||||
DtRif = DateTime.Now,
|
||||
Interval = intReq,
|
||||
Num4Int = maxItem,
|
||||
NumRec = numRecProc,
|
||||
ProcTime = sw.Elapsed.TotalSeconds
|
||||
};
|
||||
procStats.Add(currStat);
|
||||
}
|
||||
|
||||
#if false
|
||||
// salvo le statistiche di processing...
|
||||
fatto = LogFLDedupInsert(procStats);
|
||||
fatto = LogFLDedupInsert(procStats);
|
||||
#endif
|
||||
Log.Info($"FINE FluxLogDataRedux | idxMaccSel: {idxMaccSel} | periodo: {currPeriodo.Inizio} --> {currPeriodo.Fine}");
|
||||
return fatto;
|
||||
return procStats;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user