72 lines
1.5 KiB
Go
72 lines
1.5 KiB
Go
// package main ...
|
|
package session
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
"repositories.action2quare.com/ayo/gocommon/logger"
|
|
)
|
|
|
|
type sessioninfo struct {
|
|
Platform string
|
|
Uid string
|
|
}
|
|
|
|
func TestExpTable(t *testing.T) {
|
|
pv, err := NewProvider[sessioninfo](context.Background(), "redis://192.168.8.94:6380/1", 10*time.Second)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
cs, err := NewConsumer[sessioninfo](context.Background(), "redis://192.168.8.94:6380/1", 10*time.Second)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
newid1 := primitive.NewObjectID()
|
|
newid2 := primitive.NewObjectID()
|
|
go func() {
|
|
for {
|
|
logger.Println("query :", cs.Query(newid1.Hex()))
|
|
logger.Println("query :", cs.Query(newid2.Hex()))
|
|
time.Sleep(time.Second)
|
|
}
|
|
}()
|
|
|
|
time.Sleep(2 * time.Second)
|
|
pv.Update(newid1.Hex(), &sessioninfo{
|
|
Platform: "editor",
|
|
Uid: "uid-1",
|
|
})
|
|
|
|
time.Sleep(2 * time.Second)
|
|
pv.Update(newid2.Hex(), &sessioninfo{
|
|
Platform: "editor",
|
|
Uid: "uid-2",
|
|
})
|
|
|
|
cs.Touch(newid1.Hex())
|
|
time.Sleep(2 * time.Second)
|
|
cs.Touch(newid2.Hex())
|
|
time.Sleep(2 * time.Second)
|
|
|
|
time.Sleep(2 * time.Second)
|
|
pv.Delete(newid1.Hex())
|
|
|
|
cs.Touch(newid1.Hex())
|
|
time.Sleep(2 * time.Second)
|
|
cs.Touch(newid2.Hex())
|
|
time.Sleep(2 * time.Second)
|
|
|
|
cs2, err := NewConsumer[sessioninfo](context.Background(), "redis://192.168.8.94:6380/1", 10*time.Second)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
logger.Println("queryf :", cs2.Query(newid2.Hex()))
|
|
time.Sleep(20 * time.Second)
|
|
}
|