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 (
|
||||
_VERSION = "v1.0.2"
|
||||
_VERSION = "v1.1.0"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -123,15 +123,26 @@ func main() {
|
|||
connectMongo()
|
||||
defer opts.mdb.Close()
|
||||
|
||||
// Estrae la lista degli utenti che hanno fatto login negli ultimi X min.
|
||||
llindex := opts.rdb.Cmd("smembers", "llindex")
|
||||
lista, err := llindex.List()
|
||||
if err != nil {
|
||||
log.Panicln("LLINDEX error: ", err.Error())
|
||||
}
|
||||
// // Estrae la lista degli utenti che hanno fatto login negli ultimi X min.
|
||||
// llindex := opts.rdb.Cmd("smembers", "llindex")
|
||||
// lista, err := llindex.List()
|
||||
// if err != nil {
|
||||
// log.Panicln("LLINDEX error: ", err.Error())
|
||||
// }
|
||||
// // for _, user := range lista {
|
||||
// // cicla fino a che esistono righe di login
|
||||
|
||||
for _, user := range lista {
|
||||
// cicla fino a che esistono righe di login
|
||||
for {
|
||||
// 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 lastval, val string
|
||||
for {
|
||||
|
@ -163,6 +174,7 @@ func main() {
|
|||
log.Println("LREM retval: ", user, val, retval)
|
||||
continue
|
||||
}
|
||||
// se il timestamp della riga di login non e' corretto
|
||||
date, err = strconv.ParseInt(sval[1], 10, 64)
|
||||
if err != nil {
|
||||
log.Printf("Date Error: %+v - %s\n", err, user)
|
||||
|
@ -193,12 +205,14 @@ func main() {
|
|||
lastval = val
|
||||
}
|
||||
// controlla se ci sono ancora line di login per l'utente 'user'
|
||||
/*
|
||||
llen, _ := opts.rdb.Cmd("llen", user).Int64()
|
||||
if llen <= 1 {
|
||||
// elimina l'utente dalla lista di quelli che hanno fatto login se ci sono 1 o meno
|
||||
retval := opts.rdb.Cmd("srem", "llindex", user)
|
||||
log.Println("SREM retval: ", retval, user)
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
fmt.Printf("Stop %v\n", time.Since(start))
|
||||
|
|
Loading…
Add table
Reference in a new issue