in caso di errore di inserimento su mongo, reinserisce lo user su redis (LLINDEX) e continua.
This commit is contained in:
parent
7ed0686953
commit
98b1858329
3 changed files with 10 additions and 2 deletions
|
@ -12,6 +12,7 @@ import (
|
|||
|
||||
type consumed struct {
|
||||
user string
|
||||
error bool
|
||||
logins []string
|
||||
}
|
||||
|
||||
|
@ -30,6 +31,7 @@ func consumer(id int) {
|
|||
cons := consumed{
|
||||
user: prod.user,
|
||||
logins: make([]string, 0),
|
||||
error: false,
|
||||
}
|
||||
|
||||
start := time.Now()
|
||||
|
@ -81,6 +83,7 @@ func consumer(id int) {
|
|||
log.Printf("Insert error: %+v\n", err)
|
||||
// se l'errore non e' "duplicate key error" salta al prossimo senza cancellare niente
|
||||
count.AddErr()
|
||||
cons.error = true
|
||||
continue
|
||||
}
|
||||
if retval.Updated == 1 {
|
||||
|
|
2
main.go
2
main.go
|
@ -11,7 +11,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
_VERSION = "v2.2.3"
|
||||
_VERSION = "v2.2.4"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -22,11 +22,16 @@ func remover(id int) {
|
|||
// cancella da Redis la riga di login inserita
|
||||
conn.Send("lrem", rem.user, "0", login)
|
||||
}
|
||||
if rem.error {
|
||||
if opts.Debug {
|
||||
fmt.Printf("SADD (%d): %s\n", id, rem.user)
|
||||
}
|
||||
conn.Send("sadd", "llindex", rem.user)
|
||||
}
|
||||
conn.Send("expire", rem.user, opts.RedisTTL.Seconds())
|
||||
conn.Flush()
|
||||
count.AddRem(len(rem.logins))
|
||||
if opts.Debug {
|
||||
// log.Printf("LREM (%d): %s - %d - %+v\n\r", id, rem.user, len(rem.logins), time.Since(start))
|
||||
fmt.Printf("LREM (%d): %s - %d - %+v\n\r", id, rem.user, len(rem.logins), time.Since(start))
|
||||
}
|
||||
wg.Done()
|
||||
|
|
Loading…
Add table
Reference in a new issue