42 lines
902 B
Go
42 lines
902 B
Go
package memory_test
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/kercylan98/minotaur/utils/memory"
|
|
"github.com/kercylan98/minotaur/utils/timer"
|
|
"github.com/kercylan98/minotaur/utils/times"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
type Player struct {
|
|
ID int64
|
|
Name string
|
|
Account string
|
|
Password string
|
|
}
|
|
|
|
var (
|
|
QueryPlayer = memory.BindAction("QueryPlayer", func(playerId int64) *Player {
|
|
return &Player{ID: playerId}
|
|
})
|
|
QueryPlayerPersist = memory.BindPersistCacheProgram("QueryPlayer", func(player *Player) {
|
|
fmt.Println(player)
|
|
}, memory.NewOption().WithPeriodicity(timer.GetTicker(10), timer.Instantly, time.Second*10, time.Second))
|
|
)
|
|
|
|
func TestBindAction(t *testing.T) {
|
|
var player *Player
|
|
player = QueryPlayer(1)
|
|
fmt.Println(player.ID)
|
|
player.ID = 666
|
|
player = QueryPlayer(1)
|
|
fmt.Println(player.ID)
|
|
player = QueryPlayer(2)
|
|
fmt.Println(player.ID)
|
|
|
|
QueryPlayerPersist()
|
|
|
|
time.Sleep(times.Week)
|
|
}
|