Fix cache in REDIS x lettura BUNK (FIRST)
This commit is contained in:
+59
-7
@@ -30,6 +30,11 @@ namespace AppData
|
||||
|
||||
protected static string redNestAnsw = "NKC:NEST:BANSW";
|
||||
|
||||
protected static string redProdReq = "NKC:SERV:BUNKS";
|
||||
protected static string redProdAnsw = "NKC:PROD:BUNKS";
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region definizione classi impiegate con PROD
|
||||
@@ -782,6 +787,44 @@ namespace AppData
|
||||
{
|
||||
return null;
|
||||
}
|
||||
/// <summary>
|
||||
/// Chiave primo bunk su redis
|
||||
/// </summary>
|
||||
protected static string redFirstBunkKey = $"{redProdReq}:FirstBunk";
|
||||
private static WBunk redisFirstBunk
|
||||
{
|
||||
get
|
||||
{
|
||||
WBunk answ = null;
|
||||
string rawData = memLayer.ML.getRSV(redFirstBunkKey);
|
||||
if (rawData != "")
|
||||
{
|
||||
// provo a deserializzare
|
||||
try
|
||||
{
|
||||
answ = JsonConvert.DeserializeObject<WBunk>(rawData);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
string redVal = JsonConvert.SerializeObject(value);
|
||||
// default lascio x 5 minuti...
|
||||
memLayer.ML.setRSV(redFirstBunkKey, redVal, 300);
|
||||
}
|
||||
else
|
||||
// se null elimino da redis
|
||||
{
|
||||
memLayer.ML.setRSV(redFirstBunkKey, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il PRIMO bunk secondo criterio:
|
||||
/// - posizione = 5 (ho letto da webApp il BUNK e preso in carico)
|
||||
@@ -791,17 +834,26 @@ namespace AppData
|
||||
/// <returns></returns>
|
||||
public static WBunk prodGetFirstBunk()
|
||||
{
|
||||
WBunk answ = null;
|
||||
// vado sul DB e leggo ...
|
||||
DS_App.StackListDataTable tabBunks = DataLayer.man.taSTL.getLoaded();
|
||||
// controllo di averne almeno 1...
|
||||
if (tabBunks.Count > 0)
|
||||
// cerco prima su REDIS...
|
||||
WBunk answ = redisFirstBunk;
|
||||
if (answ == null)
|
||||
{
|
||||
DS_App.StackListRow currBunk = tabBunks[0];
|
||||
answ = getBunkFromDb(currBunk);
|
||||
// vado sul DB e leggo ...
|
||||
DS_App.StackListDataTable tabBunks = DataLayer.man.taSTL.getLoaded();
|
||||
// controllo di averne almeno 1...
|
||||
if (tabBunks.Count > 0)
|
||||
{
|
||||
DS_App.StackListRow currBunk = tabBunks[0];
|
||||
answ = getBunkFromDb(currBunk);
|
||||
// se ho qualcosa salvo su REDIS
|
||||
redisFirstBunk = answ;
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il PROSSIMO bunk secondo criterio:
|
||||
/// - posizione = 5 (ho letto da webApp il BUNK e preso in carico)
|
||||
|
||||
Reference in New Issue
Block a user