2015-11-20 15:23:12 +01:00
|
|
|
// finalizer
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2017-02-10 16:56:09 +01:00
|
|
|
|
2015-11-20 15:23:12 +01:00
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
2016-11-03 17:42:37 +01:00
|
|
|
func remover() {
|
|
|
|
|
2015-11-20 15:23:12 +01:00
|
|
|
var conn = dbs.rdb.Get()
|
|
|
|
defer conn.Close()
|
|
|
|
|
2015-11-23 17:39:17 +01:00
|
|
|
for {
|
2016-11-03 17:42:37 +01:00
|
|
|
rem := <-remove
|
2015-11-20 15:23:12 +01:00
|
|
|
|
2016-11-04 11:50:27 +01:00
|
|
|
status = _Remover
|
|
|
|
|
2015-11-20 15:23:12 +01:00
|
|
|
start := time.Now()
|
2017-02-10 17:18:56 +01:00
|
|
|
if !rem.err {
|
2017-02-10 16:56:09 +01:00
|
|
|
for i := range rem.logins {
|
|
|
|
// cancella da Redis la riga di login inserita partendo da 1
|
|
|
|
conn.Send("lrem", rem.user, "1", rem.logins[i])
|
|
|
|
}
|
2015-11-20 15:23:12 +01:00
|
|
|
}
|
2016-05-27 12:04:12 +02:00
|
|
|
|
|
|
|
// se ci sono errori o non e' vuota la lista di logins reinserisce lo user
|
2017-02-10 17:18:56 +01:00
|
|
|
if rem.err {
|
2015-11-24 12:08:43 +01:00
|
|
|
if opts.Debug {
|
2016-11-03 17:42:37 +01:00
|
|
|
fmt.Printf("SADD: %s\n", rem.user)
|
2015-11-24 12:08:43 +01:00
|
|
|
}
|
|
|
|
conn.Send("sadd", "llindex", rem.user)
|
2015-11-27 10:32:58 +01:00
|
|
|
if count.GetErr() >= opts.MaxError {
|
2015-11-24 12:28:22 +01:00
|
|
|
exit()
|
|
|
|
}
|
2015-11-24 12:08:43 +01:00
|
|
|
}
|
2015-11-20 16:17:31 +01:00
|
|
|
conn.Send("expire", rem.user, opts.RedisTTL.Seconds())
|
2015-11-20 15:23:12 +01:00
|
|
|
conn.Flush()
|
2017-02-10 16:56:09 +01:00
|
|
|
|
2015-11-20 15:23:12 +01:00
|
|
|
if opts.Debug {
|
2016-11-03 17:42:37 +01:00
|
|
|
fmt.Printf("LREM: %s - %d - %+v\n", rem.user, len(rem.logins), time.Since(start))
|
2015-11-20 15:23:12 +01:00
|
|
|
}
|
2017-02-10 17:18:56 +01:00
|
|
|
|
2016-12-20 15:37:32 +01:00
|
|
|
counter <- Counterchan{
|
|
|
|
tipo: "wg",
|
|
|
|
val: -1,
|
|
|
|
}
|
2017-02-10 17:18:56 +01:00
|
|
|
wg.Done()
|
2015-11-20 15:23:12 +01:00
|
|
|
}
|
|
|
|
}
|