feat(multiplayer): refresh allocator ready servers

This commit is contained in:
Josh Creek
2026-09-01 10:44:43 +01:00
parent 013eb0778b
commit 9dc1cc2d6f
8 changed files with 111 additions and 5 deletions
+12 -1
View File
@@ -45,10 +45,11 @@ func main() {
fatalf("apply migrations: %v", err)
}
now := func() time.Time { return time.Now().UTC() }
client := agones.Client{BaseURL: *agonesURL, Namespace: *namespace}
worker := allocator.Worker{
Claims: store.AllocatingMatchClaims{DB: db, Transport: *transport},
Service: allocator.Service{
Provider: agones.Client{BaseURL: *agonesURL, Namespace: *namespace},
Provider: client,
Durable: store.AllocationRegistry{DB: db},
Now: now,
},
@@ -59,6 +60,16 @@ func main() {
ticker := time.NewTicker(*interval)
defer ticker.Stop()
for {
servers, err := client.ListReadyServers(ctx)
if err != nil && ctx.Err() == nil {
log.Printf("allocator: list Ready GameServers: %v", err)
} else {
for _, server := range servers {
if err := store.RegisterReadyServer(ctx, db, server, now()); err != nil && ctx.Err() == nil {
log.Printf("allocator: register Ready GameServer %s: %v", server.ServerID, err)
}
}
}
if _, err := worker.RunOnce(ctx); err != nil && ctx.Err() == nil {
log.Printf("allocator: run once: %v", err)
}