diff --git a/appServer/test_redis.php b/appServer/test_redis.php
index aae6905..ba434ac 100644
--- a/appServer/test_redis.php
+++ b/appServer/test_redis.php
@@ -5,7 +5,7 @@ Testing procedure Redis per EQN...
require 'redis.php';
function redis_error($error) {
- throw new error($error);
+// throw new error($error);
}
$redis = new redis_cli ();
@@ -18,45 +18,75 @@ echo "Server inizializzato, proseguono test
";
# VALORI DI CONFIGURAZIONE (portare su file ext!!!)
#------------------------------------------------------
# ScoreList Posizioni
+$semaforo = "EQN:USERS:SEMAPHORE";
$tblPos = "EQN:USERS:POS";
$tblLast= "EQN:USERS:UPD";
-# timeout (x semaforo) della gestione update POSIZIONI sul DB (cancello vecchi, inserisco nuovi): 1 min (poi 5?)
-$tOutPos2Db = 1;
+# timeout (x semaforo) IN SECONDI x gestione update POSIZIONI sul DB (cancello vecchi, inserisco nuovi): 1 min (poi 5?)
+$tOutSemaforo = 30;
# età massima dei valori a sistema (2 minuti, in prod 30!!!)
$maxAgePos = 1;
# num record da processare in blocco
$nBlockRec = 10;
+# controllo se serve cleanUp
+$doClean=0;
# definizione funzioni helper x gestione REDIS dell'oggetto (UserID = numero, DTime in intero fino ai minuti yyMMddHHmm)
+
+# Salva posizione utente
function salvaPosizione($redis, $tblPos, $tblLast, $User_ID, $Lat, $Lon, $DTime) {
# salvo dataora verifica
$redis->cmd('ZADD', $tblLast, $DTime, $User_ID )
// # salvo posizione Geolocalizzata
- ->cmd('GEOADD',$tblPos, $Lat, $Lon, $User_ID )
+ ->cmd('GEOADD',$tblPos, $Lon, $Lat, $User_ID )
->set();
}
+# Verifica SE ci sia semaforo rosso oppure se sia necessario a fine programma fare cleanUp
+function checkSemaforo($redis, $semaforo, $tOutSemaforo) {
+ // verifico semaforo...
+ $answ=$redis->cmd('EXISTS', $semaforo )->get();
+ // se NON c'è lo creo
+ #echo "check semaforo: answ: ".$answ;
+ if($answ==0)
+ {
+ $redis->cmd('SET', $semaforo, date("YmdHi"))
+ ->cmd('EXPIRE', $semaforo, $tOutSemaforo)
+ ->set();
+ }
+ return $answ;
+}
+
+function cleanUp($redis, $tblPos, $tblLast, $DTime) {
+ // chiamo IN BLOCCO calcellazione dati vecchi (prima GEO e poi DTime)
+
+ // cerco i dati NUOVI (per DB) da persistere su DB $nBlockRec alla volta...
+}
# Genero un UID univoco con nome server (numerico) + numero casuale
$server = gethostname();
$uID = substr($server, 2, 2).rand(0,999999999);
# genero coordinate casuali LAT/LON
-$cLat = rand(-85,85);
-$cLon = rand(-180,180);
+$cLat = rand(-80,80);
+$cLon = rand(-170,170);
$currDT = date("YmdHi");
-echo"Valore | uID: ".$uID." | LAT: ".$cLat." | LON: ".$cLon." | DT: ".$currDT;
-
-salvaPosizione($redis, $tblPos, $tblLast, $uID, $cLat, $cLon, $currDT);
+# in primis check semaforo SE debba fare pulizia
+$doClean=checkSemaforo($redis, $semaforo, $tOutSemaforo);
# effettuo update informazione posizione dell'utente (insert/update)
+salvaPosizione($redis, $tblPos, $tblLast, $uID, $cLat, $cLon, $currDT);
+
+echo"Valore salvato uID: ".$uID." | LAT: ".$cLat." | LON: ".$cLon." | DT: ".$currDT;
+echo "
";
# verifico semaforo $tOutPos2Db (se devo svuotare e aggiornare DB da redis)
+$maxDT = date("YmdHi");
+cleanUp($redis, $tblPos, $tblLast, $maxDT);
# mostro infine count record rimasti!!!
-
?>
+