diff --git a/backend/cmd/ender/main.go b/backend/cmd/ender/main.go index 51dac331b..f9901921a 100644 --- a/backend/cmd/ender/main.go +++ b/backend/cmd/ender/main.go @@ -68,7 +68,7 @@ func main() { sessions.HandleEndedSessions(func(sessionID uint64, timestamp int64) bool { msg := &messages.SessionEnd{Timestamp: uint64(timestamp)} if err := producer.Produce(cfg.TopicTrigger, sessionID, messages.Encode(msg)); err != nil { - log.Printf("can't send message to queue: %s", err) + log.Printf("can't send SessionEnd to trigger topic: %s; sessID: %d", err, sessionID) return false } return true diff --git a/backend/internal/sessionender/ender.go b/backend/internal/sessionender/ender.go index 26784b048..bd0a40a35 100644 --- a/backend/internal/sessionender/ender.go +++ b/backend/internal/sessionender/ender.go @@ -66,13 +66,16 @@ func (se *SessionEnder) UpdateSession(sessionID, timestamp uint64) { // HandleEndedSessions runs handler for each ended session and delete information about session in successful case func (se *SessionEnder) HandleEndedSessions(handler EndedSessionHandler) { deadLine := time.Now().UnixMilli() - se.timeout + allSessions, removedSessions := len(se.sessions), 0 for sessID, sess := range se.sessions { if sess.isEnded || sess.lastTimestamp < deadLine { sess.isEnded = true if handler(sessID, sess.lastTimestamp) { delete(se.sessions, sessID) se.activeSessions.Add(context.Background(), -1) + removedSessions++ } } } + log.Printf("Removed %d of %d sessions", removedSessions, allSessions) }