Fix gestione veto (da testare) variabile da MAN
This commit is contained in:
+41
-3
@@ -36,6 +36,7 @@ namespace IOB_UT_NEXT
|
||||
{
|
||||
initRedisConn();
|
||||
initMemKeys();
|
||||
setVetoPeriod();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,6 +55,7 @@ namespace IOB_UT_NEXT
|
||||
currCodIob = codIob;
|
||||
currIobType = tipoIob;
|
||||
initMemKeys();
|
||||
setVetoPeriod();
|
||||
// init oggetti gestiti
|
||||
ServerMpStatus newSrvStatus = new ServerMpStatus()
|
||||
{
|
||||
@@ -1194,18 +1196,21 @@ namespace IOB_UT_NEXT
|
||||
{
|
||||
bool fatto = false;
|
||||
// effettuo la scrittura nell'area di memoria indicata SE passato intervallo minimo di 60 sec
|
||||
bool doSave = true;
|
||||
bool doSave = false;
|
||||
if (LastKeySave.ContainsKey(memKey))
|
||||
{
|
||||
if (DateTime.Now.Subtract(LastKeySave[memKey]).TotalSeconds < 60)
|
||||
if (DateTime.Now.Subtract(LastKeySave[memKey]).TotalSeconds > vetoSavePeriod)
|
||||
{
|
||||
doSave = false;
|
||||
doSave = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LastKeySave.Add(memKey, DateTime.Now);
|
||||
doSave = true;
|
||||
}
|
||||
|
||||
// se scaduto veto periodo salvo
|
||||
if (doSave)
|
||||
{
|
||||
cache.StringSet(memKey, message);
|
||||
@@ -1430,6 +1435,11 @@ namespace IOB_UT_NEXT
|
||||
/// </summary>
|
||||
protected string redIobChannel = "IobChannel";
|
||||
|
||||
/// <summary>
|
||||
/// /Chiave varabili scambiate con IOB-MAN
|
||||
/// </summary>
|
||||
protected string redManKey = "";
|
||||
|
||||
/// <summary>
|
||||
/// Hash REDIS x dati server
|
||||
/// </summary>
|
||||
@@ -1444,6 +1454,11 @@ namespace IOB_UT_NEXT
|
||||
/// </summary>
|
||||
private Dictionary<string, DateTime> LastKeySave = new Dictionary<string, DateTime>();
|
||||
|
||||
/// <summary>
|
||||
/// veriodo di veto salvataggio chaivi in REDIS quando inviate tramite pub/sub in realtime
|
||||
/// </summary>
|
||||
private int vetoSavePeriod = 10;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
@@ -1493,6 +1508,7 @@ namespace IOB_UT_NEXT
|
||||
{
|
||||
// init dati di base...
|
||||
redServKey = redHash($"MP");
|
||||
redManKey = redHash($"MAN");
|
||||
redIobKey = redHash($"IOB:{currCodIob}");
|
||||
redIobTrackKey = redHash($"IOB:FluxLog:{currCodIob}");
|
||||
redIobChannel = $"IobChannel_{currCodIob}";
|
||||
@@ -1513,6 +1529,28 @@ namespace IOB_UT_NEXT
|
||||
Logging.Instance.Info($"Apertura di un Redis Multiplexer");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Impostazione periodo veto secondo il comportamento di IOB-MAN
|
||||
/// </summary>
|
||||
private void setVetoPeriod()
|
||||
{
|
||||
// cerco in redis la chiave di veto (scritta da IOB-MAN)
|
||||
string rKey = $"{redManKey}:vetoSave";
|
||||
string rawVal = getRSV(rKey);
|
||||
// se la trovo la metto da qui
|
||||
if (!string.IsNullOrEmpty(rawVal))
|
||||
{
|
||||
int.TryParse(rawVal, out vetoSavePeriod);
|
||||
}
|
||||
//se non la trovo di default è 15
|
||||
else
|
||||
{
|
||||
vetoSavePeriod = 15;
|
||||
// salvo in redis il valore impostato
|
||||
setRSV(rKey, $"{vetoSavePeriod}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
C;[[ODL]];
|
||||
S;[[SERIE]];[[CODICE]];;;[[ALTEZZA]];0;[[QUOTA_USCITA]];
|
||||
P;[[CODICE_LUNGH]];[[QTA]];[[LUNGH]];90;90;;;[[CLIENTE]];
|
||||
P;[[CODICE_LUNGH]];[[QTA]];[[LUNGH]];90;90;;;[[CLIENTE]];
|
||||
B;10001;100;6000.0;1;0;O1;0
|
||||
|
@@ -19,4 +19,4 @@ CLI_INST=SteamWareSim
|
||||
;STARTLIST=IMI_SONATEST
|
||||
STARTLIST=FTP_SONATEST
|
||||
|
||||
MAXCNC=10
|
||||
MAXCNC=10
|
||||
@@ -24,4 +24,4 @@ STARTLIST=3024
|
||||
;NB: mettere copy always ai file di conf x fare test...
|
||||
;STARTLIST=3024
|
||||
|
||||
MAXCNC=10
|
||||
MAXCNC=10
|
||||
@@ -31,4 +31,4 @@ CLI_INST=SteamWareSim
|
||||
;STARTLIST=1042
|
||||
STARTLIST=2015
|
||||
|
||||
MAXCNC=10
|
||||
MAXCNC=10
|
||||
@@ -18,4 +18,4 @@ STARTLIST=FTP-PING
|
||||
;STARTLIST=SIMUL_08
|
||||
;STARTLIST=3024-PING
|
||||
|
||||
MAXCNC=10
|
||||
MAXCNC=10
|
||||
@@ -22,4 +22,4 @@ CLI_INST=SteamWareSim
|
||||
STARTLIST=3018
|
||||
;STARTLIST=3019
|
||||
|
||||
MAXCNC=10
|
||||
MAXCNC=10
|
||||
@@ -541,8 +541,7 @@ namespace IOB_WIN_WS.IobWs
|
||||
string FileInPath = IOBConfFull.OptParGet("FileInPath");
|
||||
if (!string.IsNullOrEmpty(FileInPath))
|
||||
{
|
||||
string fullPath = Path.Combine("Tools", FileInPath);
|
||||
if (File.Exists(fullPath))
|
||||
if (File.Exists(FileInPath))
|
||||
{
|
||||
// verifico presenza in cache REDIS
|
||||
rawData = redisMan.getRSV(rKeyConf);
|
||||
@@ -748,7 +747,7 @@ namespace IOB_WIN_WS.IobWs
|
||||
//var lastJobId = getCurrProdData("currPODL", "");
|
||||
if (!lastJobId.Equals(currStatusDTO.Workstation.JobId))
|
||||
{
|
||||
startNewJob(currStatusDTO.Workstation.JobId, lastJobId);
|
||||
startNewJob(lastJobId, currStatusDTO.Workstation.JobId);
|
||||
// --> salvo come valore corrente...
|
||||
upsertKey("currJobId", currStatusDTO.Workstation.JobId);
|
||||
}
|
||||
@@ -767,13 +766,13 @@ namespace IOB_WIN_WS.IobWs
|
||||
/// - archiviazione file OPR*.csv
|
||||
/// - TTL cache redis in disabilitazione
|
||||
/// </summary>
|
||||
/// <param name="jobIdNew">Nuovo JobId</param>
|
||||
/// <param name="jobIdOld">Vecchio JobId</param>
|
||||
private void startNewJob(string jobIdNew, string jobIdOld)
|
||||
/// <param name="jobIdNew">Nuovo JobId</param>
|
||||
private void startNewJob(string jobIdOld, string jobIdNew)
|
||||
{
|
||||
lgInfo($"Richiesta startNewJob: {jobIdOld} --> {jobIdNew}");
|
||||
// ipotesi JobId = OPRxx-yyyyy (se fosse PODL va modificato)
|
||||
|
||||
|
||||
// eseguo chiusura ultimo ODL
|
||||
|
||||
// avvio PODL nuovo
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
C;[[ODL]];
|
||||
S;[[SERIE]];[[CODICE]];;;[[ALTEZZA]];0;[[QUOTA_USCITA]];
|
||||
P;[[CODICE_LUNGH]];[[QTA]];[[LUNGH]];90;90;;;[[CLIENTE]];
|
||||
P;[[CODICE_LUNGH]];[[QTA]];[[LUNGH]];90;90;;;[[CLIENTE]];
|
||||
B;10001;100;6000.0;1;0;O1;0
|
||||
|
Reference in New Issue
Block a user