feat: 实现 sessions 持久化,支持会话恢复

This commit is contained in:
hhs
2026-06-14 18:54:18 +08:00
parent d724a8e9f9
commit 966b30218a
6 changed files with 376 additions and 35 deletions

View File

@@ -53,6 +53,7 @@ func main() {
var userRepo store.UserRepository
var msgRepo store.MessageRepository
var sessRepo store.SessionRepository
if cfg.Storage.Driver == "postgres" {
pool, err := store.NewPostgresPool(ctx, cfg.Storage.DSN)
@@ -68,6 +69,7 @@ func main() {
userRepo = store.NewPgUserRepository(pool)
msgRepo = store.NewPgMessageRepository(pool)
sessRepo = store.NewPgSessionRepository(pool)
logger.Log.Infow("postgres storage initialized", "driver", cfg.Storage.Driver)
} else {
userRepo = store.NewMemUserRepository()
@@ -80,6 +82,9 @@ func main() {
if msgRepo != nil {
sessionOpts = append(sessionOpts, session.WithMessageRepository(msgRepo))
}
if sessRepo != nil {
sessionOpts = append(sessionOpts, session.WithSessionRepository(sessRepo))
}
sessionMgr = session.NewMemoryManager(
time.Duration(cfg.Session.TTL)*time.Minute,
cfg.Session.MaxHistory,