Remove room watchers

This commit is contained in:
sergystepanov 2025-12-24 21:25:03 +03:00
parent 059e19d790
commit aeb41008c9
2 changed files with 1 additions and 49 deletions

View file

@ -1,46 +0,0 @@
package worker
import (
"time"
"github.com/giongto35/cloud-game/v3/pkg/logger"
"github.com/giongto35/cloud-game/v3/pkg/worker/room"
)
type Watcher struct {
r *room.GameRouter
t *time.Ticker
done chan struct{}
log *logger.Logger
}
func NewWatcher(p time.Duration, router *room.GameRouter, log *logger.Logger) *Watcher {
return &Watcher{
r: router,
t: time.NewTicker(p),
done: make(chan struct{}),
log: log,
}
}
func (w *Watcher) Run() {
go func() {
for {
select {
case <-w.t.C:
if w.r.HasRoom() && w.r.Users().Empty() {
w.r.Close()
w.log.Warn().Msgf("Forced room close!")
}
case <-w.done:
return
}
}
}()
}
func (w *Watcher) Stop() error {
w.t.Stop()
close(w.done)
return nil
}

View file

@ -3,7 +3,6 @@ package worker
import ( import (
"errors" "errors"
"fmt" "fmt"
"time"
"github.com/giongto35/cloud-game/v3/pkg/config" "github.com/giongto35/cloud-game/v3/pkg/config"
"github.com/giongto35/cloud-game/v3/pkg/games" "github.com/giongto35/cloud-game/v3/pkg/games"
@ -25,7 +24,7 @@ type Worker struct {
log *logger.Logger log *logger.Logger
mana *caged.Manager mana *caged.Manager
router *room.GameRouter router *room.GameRouter
services [3]interface { services [2]interface {
Run() Run()
Stop() error Stop() error
} }
@ -77,7 +76,6 @@ func New(conf config.WorkerConfig, log *logger.Logger) (*Worker, error) {
log.Warn().Err(err).Msgf("cloud storage fail, using no storage") log.Warn().Err(err).Msgf("cloud storage fail, using no storage")
} }
worker.storage = st worker.storage = st
worker.services[2] = NewWatcher(30*time.Minute, worker.router, log)
return worker, nil return worker, nil
} }