// finalizer package main import ( "fmt" "time" ) func remover() { var conn = dbs.rdb.Get() defer conn.Close() for { rem := <-remove status = _Remover start := time.Now() if !rem.err { 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]) } } // se ci sono errori o non e' vuota la lista di logins reinserisce lo user if rem.err { if opts.Debug { fmt.Printf("SADD: %s\n", rem.user) } conn.Send("sadd", "llindex", rem.user) if count.GetErr() >= opts.MaxError { exit() } } conn.Send("expire", rem.user, opts.RedisTTL.Seconds()) conn.Flush() if opts.Debug { fmt.Printf("LREM: %s - %d - %+v\n", rem.user, len(rem.logins), time.Since(start)) } counter <- Counterchan{ tipo: "wg", val: -1, } wg.Done() } }