diff --git a/appServer/stopWatch.php b/appServer/stopWatch.php new file mode 100644 index 0000000..8a48e0b --- /dev/null +++ b/appServer/stopWatch.php @@ -0,0 +1,28 @@ + diff --git a/appServer/test_redis.php b/appServer/test_redis.php index ccf81e0..a3b77b7 100644 --- a/appServer/test_redis.php +++ b/appServer/test_redis.php @@ -3,6 +3,10 @@ Testing procedure Redis per EQN... connect("redis01"); $redis->set_error_function('redis_error'); -echo "Server inizializzato, proseguono test
"; +$server = gethostname(); +echo "Server ".$server." inizializzato, proseguo test
"; #------------------------------------------------------ # VALORI DI CONFIGURAZIONE (portare su file ext!!!) @@ -24,11 +29,11 @@ $tblLast= "EQN:USERS:UPD"; # 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; +$maxAgePos = 30; # num record da processare in blocco $nBlockRec = 10; # controllo se serve cleanUp -$doClean=0; +$semOk=0; # definizione funzioni helper x gestione REDIS dell'oggetto (UserID = numero, DTime in intero fino ai minuti yyMMddHHmm) @@ -46,7 +51,6 @@ 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")) @@ -54,24 +58,22 @@ function checkSemaforo($redis, $semaforo, $tOutSemaforo) { ->set(); } return $answ; - } - +# effettua pulizia tabelle REDIS UTENTI (POS e UPD) function cleanUp($redis, $tblPos, $tblLast, $DTime) { - // chiamo IN BLOCCO cancellazione dati vecchi (prima GEO e poi DTime) - - // esempio: - // http://srv.earthquakenetwork.it/test_redis.php - // https://github.com/ziogas/PHP-Redis-implementation - // https://stackoverflow.com/questions/33196237/how-to-set-expire-when-using-redis-geoadd - // https://redis.io/commands/zremrangebyrank - + // chiamo IN BLOCCO calcellazione dati vecchi (prima GEO e poi DTime) + echo "DTime Max: ".$DTime."
"; // cerco i dati NUOVI (per DB) da persistere su DB $nBlockRec alla volta... } - +# conta quanti record ci siano nelle tab indicata +function cntRec($redis, $tblReq) { + // conteggio! + $answ=$redis->cmd('ZCOUNT', $tblReq, '-inf', '+inf')->set(); + // ritorno valore + return $answ[0]; +} # 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(-80,80); @@ -79,20 +81,32 @@ $cLon = rand(-170,170); $currDT = date("YmdHi"); # in primis check semaforo SE debba fare pulizia -$doClean=checkSemaforo($redis, $semaforo, $tOutSemaforo); +$semOk=checkSemaforo($redis, $semaforo, $tOutSemaforo); +$num=cntRec($redis, $tblLast); +echo"Semaforo: ".$semOk." | Trovati ".$num." valori in REDIS
"; +echo "Elapsed time: ".StopWatch::elapsed()."
"; +echo "
"; # 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"Valore salvato uID: ".$uID." | LAT: ".$cLat." | LON: ".$cLon." | DT: ".$currDT."
"; +echo "Elapsed time: ".StopWatch::elapsed()."
"; echo "
"; # verifico semaforo $tOutPos2Db (se devo svuotare e aggiornare DB da redis) -$maxDT = date("YmdHi"); -cleanUp($redis, $tblPos, $tblLast, $maxDT); +if($semOk==0) +{ + $maxDT = date("YmdHi",strtotime("-30 min")); + cleanUp($redis, $tblPos, $tblLast, $maxDT); + $num=cntRec($redis, $tblLast); + echo"Eseguito cleanUp: rimangono ".$num." valori in REDIS"; + echo "
"; +} # mostro infine count record rimasti!!! - - +echo "
fatto!
"; +echo "Elapsed time: ".StopWatch::elapsed()."
"; + ?>