diff --git a/internal/core/reaper.go b/internal/core/worker.go similarity index 80% rename from internal/core/reaper.go rename to internal/core/worker.go index 3e28a91..bbc87da 100644 --- a/internal/core/reaper.go +++ b/internal/core/worker.go @@ -11,8 +11,8 @@ const ( inactivityTimeout = 30 * time.Minute ) -func StartReaper(repository domain.Repository, sessionManager PollMapSessionManager) { - r := &reaper{ +func StartWorker(repository domain.Repository, sessionManager PollMapSessionManager) { + r := &worker{ sessionManager: sessionManager, repository: repository, } @@ -20,19 +20,20 @@ func StartReaper(repository domain.Repository, sessionManager PollMapSessionMana go r.start() } -type reaper struct { +type worker struct { sessionManager PollMapSessionManager repository domain.Repository } -func (r *reaper) start() { +func (r *worker) start() { + r.deleteInactiveEphemeralNodes() t := time.NewTicker(ticker) for range t.C { - r.reapInactiveEphemeralNodes() + r.deleteInactiveEphemeralNodes() } } -func (r *reaper) reapInactiveEphemeralNodes() { +func (r *worker) deleteInactiveEphemeralNodes() { ctx := context.Background() now := time.Now().UTC() @@ -41,6 +42,7 @@ func (r *reaper) reapInactiveEphemeralNodes() { if err != nil { return } + var removedNodes = make(map[uint64][]uint64) for _, m := range machines { if now.After(m.LastSeen.Add(inactivityTimeout)) { diff --git a/internal/server/server.go b/internal/server/server.go index d29a8ef..8409b4e 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -65,7 +65,7 @@ func Start(ctx context.Context, c *config.Config) error { return logError(err) } - core.StartReaper(repository, sessionManager) + core.StartWorker(repository, sessionManager) serverUrl, err := url.Parse(c.ServerUrl) if err != nil {