aggiunta la possibilita' di scrivere su piu' mongodb
This commit is contained in:
parent
1b36fde70a
commit
8228f63fff
6 changed files with 98 additions and 273 deletions
54
producer.go
54
producer.go
|
@ -4,7 +4,7 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
// "strconv"
|
||||
"time"
|
||||
|
||||
"github.com/garyburd/redigo/redis"
|
||||
|
@ -27,58 +27,52 @@ func producer() {
|
|||
start := time.Now()
|
||||
// estrae un userid dalla lista degli utenti che hanno fatto login
|
||||
user, err := redis.String(conn.Do("spop", "llindex"))
|
||||
// if opts.Debug {
|
||||
// log.Printf("SPOP: %+v - %+v\n", user, err)
|
||||
// fmt.Printf("SPOP: %+v - %+v\n", user, err)
|
||||
// }
|
||||
// se non ci sono piu' userid esce
|
||||
if err != nil {
|
||||
if opts.Debug {
|
||||
fmt.Printf("LLINDEX empty: %v\n", err)
|
||||
}
|
||||
log.Printf("LLINDEX empty: %v\n", err)
|
||||
//loop[id] = false
|
||||
//done[id] <- true
|
||||
break
|
||||
}
|
||||
|
||||
// estrae <MaxLogins> login dell'utente "user"
|
||||
logs, err := redis.Strings(conn.Do("lrange", user, "1", strconv.Itoa(opts.MaxLogins)))
|
||||
// estrae tutti i logins dell'utente "user"
|
||||
logs, err := redis.Strings(conn.Do("lrange", user, "1", "-1"))
|
||||
if err != nil {
|
||||
if opts.Debug {
|
||||
fmt.Printf("LRANGE: %+v - %+v\n", err, logs)
|
||||
}
|
||||
log.Printf("LRANGE: %+v - %+v\n", err, logs)
|
||||
}
|
||||
// if opts.Debug {
|
||||
// fmt.Printf("LRANGE: %s - %d\n", user, len(logs))
|
||||
// log.Printf("LRANGE: %s - %d\n", user, len(logs))
|
||||
// }
|
||||
|
||||
if opts.Debug {
|
||||
fmt.Printf("PROD: user=%s login=%d in %v - conn=%d\n", user, len(logs), time.Since(start), dbs.rdb.ActiveCount())
|
||||
// log.Printf("PROD (%d): user=%s login=%d in %v - conn=%d\n", id, user, len(logs), time.Since(start), dbs.rdb.ActiveCount())
|
||||
}
|
||||
|
||||
counter <- Counterchan{
|
||||
tipo: "user",
|
||||
val: 1,
|
||||
}
|
||||
wg.Add(1)
|
||||
counter <- Counterchan{
|
||||
tipo: "wg",
|
||||
val: 1,
|
||||
}
|
||||
if len(logs) > 0 {
|
||||
counter <- Counterchan{
|
||||
tipo: "user",
|
||||
val: 1,
|
||||
}
|
||||
wg.Add(1)
|
||||
counter <- Counterchan{
|
||||
tipo: "wg",
|
||||
val: 1,
|
||||
}
|
||||
|
||||
if opts.Debug {
|
||||
fmt.Printf("PROD: %+v\n", time.Since(start))
|
||||
}
|
||||
if opts.Debug {
|
||||
fmt.Printf("PROD: %+v\n", time.Since(start))
|
||||
}
|
||||
|
||||
consume <- produced{
|
||||
user: user,
|
||||
logins: logs,
|
||||
}
|
||||
if opts.Test {
|
||||
log.Printf("PROD: %s - %d\n", user, len(logs))
|
||||
}
|
||||
|
||||
consume <- produced{
|
||||
user: user,
|
||||
logins: logs,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
done <- true
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue