mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-01-23 02:34:42 +00:00
Remove room watchers
This commit is contained in:
parent
059e19d790
commit
aeb41008c9
2 changed files with 1 additions and 49 deletions
|
|
@ -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
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue