Files
2026-07-15 13:29:08 +03:00

62 lines
1.4 KiB
Go

package main
import (
"log"
"time"
"chessstars/internal/auth"
"chessstars/internal/game"
)
func startAuthCleaner(store *auth.Store) {
ttl, err := time.ParseDuration(env("AUTH_CLEANUP_TTL", "60m"))
if err != nil || ttl <= 0 {
ttl = 60 * time.Minute
}
interval, err := time.ParseDuration(env("AUTH_CLEANUP_INTERVAL", "5m"))
if err != nil || interval <= 0 {
interval = 5 * time.Minute
}
go func() {
ticker := time.NewTicker(interval)
defer ticker.Stop()
for range ticker.C {
n, err := store.Cleanup(ttl)
if err != nil {
log.Printf("auth cleanup error: %v", err)
continue
}
if n > 0 {
log.Printf("auth cleanup: removed %d account(s) older than %s", n, ttl)
}
}
}()
}
func startGameCleaner(manager *game.Manager) {
finishedTTL, err := time.ParseDuration(env("GAME_CLEANUP_FINISHED_TTL", "30m"))
if err != nil || finishedTTL <= 0 {
finishedTTL = 30 * time.Minute
}
openTTL, err := time.ParseDuration(env("GAME_CLEANUP_OPEN_TTL", "60m"))
if err != nil || openTTL <= 0 {
openTTL = 60 * time.Minute
}
interval, err := time.ParseDuration(env("GAME_CLEANUP_INTERVAL", "5m"))
if err != nil || interval <= 0 {
interval = 5 * time.Minute
}
go func() {
ticker := time.NewTicker(interval)
defer ticker.Stop()
for range ticker.C {
n := manager.Cleanup(finishedTTL, openTTL)
if n > 0 {
log.Printf("game cleanup: removed %d game(s)", n)
}
}
}()
}