estrae uno user per volta con SPOP
This commit is contained in:
parent
0a9899cc80
commit
97e7801f0f
1 changed files with 29 additions and 15 deletions
32
llmongo.go
32
llmongo.go
|
@ -40,7 +40,7 @@ type Index struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_VERSION = "v1.0.2"
|
_VERSION = "v1.1.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -123,15 +123,26 @@ func main() {
|
||||||
connectMongo()
|
connectMongo()
|
||||||
defer opts.mdb.Close()
|
defer opts.mdb.Close()
|
||||||
|
|
||||||
// Estrae la lista degli utenti che hanno fatto login negli ultimi X min.
|
// // Estrae la lista degli utenti che hanno fatto login negli ultimi X min.
|
||||||
llindex := opts.rdb.Cmd("smembers", "llindex")
|
// llindex := opts.rdb.Cmd("smembers", "llindex")
|
||||||
lista, err := llindex.List()
|
// lista, err := llindex.List()
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Panicln("LLINDEX error: ", err.Error())
|
// log.Panicln("LLINDEX error: ", err.Error())
|
||||||
}
|
// }
|
||||||
|
// // for _, user := range lista {
|
||||||
|
// // cicla fino a che esistono righe di login
|
||||||
|
|
||||||
for _, user := range lista {
|
for {
|
||||||
// cicla fino a che esistono righe di login
|
// estrae un userid dalla lista degli utenti che hanno fatto login
|
||||||
|
spop := opts.rdb.Cmd("spop", "llindex")
|
||||||
|
user, err := spop.Str()
|
||||||
|
log.Printf("SPOP: %+v %+v\n", spop, user)
|
||||||
|
// se non ci sono piu' userid esce
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("LLINDEX empty: %v\n", err)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
// user := spop.String()
|
||||||
var date int64
|
var date int64
|
||||||
var lastval, val string
|
var lastval, val string
|
||||||
for {
|
for {
|
||||||
|
@ -163,6 +174,7 @@ func main() {
|
||||||
log.Println("LREM retval: ", user, val, retval)
|
log.Println("LREM retval: ", user, val, retval)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
// se il timestamp della riga di login non e' corretto
|
||||||
date, err = strconv.ParseInt(sval[1], 10, 64)
|
date, err = strconv.ParseInt(sval[1], 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Date Error: %+v - %s\n", err, user)
|
log.Printf("Date Error: %+v - %s\n", err, user)
|
||||||
|
@ -193,12 +205,14 @@ func main() {
|
||||||
lastval = val
|
lastval = val
|
||||||
}
|
}
|
||||||
// controlla se ci sono ancora line di login per l'utente 'user'
|
// controlla se ci sono ancora line di login per l'utente 'user'
|
||||||
|
/*
|
||||||
llen, _ := opts.rdb.Cmd("llen", user).Int64()
|
llen, _ := opts.rdb.Cmd("llen", user).Int64()
|
||||||
if llen <= 1 {
|
if llen <= 1 {
|
||||||
// elimina l'utente dalla lista di quelli che hanno fatto login se ci sono 1 o meno
|
// elimina l'utente dalla lista di quelli che hanno fatto login se ci sono 1 o meno
|
||||||
retval := opts.rdb.Cmd("srem", "llindex", user)
|
retval := opts.rdb.Cmd("srem", "llindex", user)
|
||||||
log.Println("SREM retval: ", retval, user)
|
log.Println("SREM retval: ", retval, user)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("Stop %v\n", time.Since(start))
|
fmt.Printf("Stop %v\n", time.Since(start))
|
||||||
|
|
Loading…
Add table
Reference in a new issue