feat(backend/ender): added additional log for ender service

This commit is contained in:
Alexander Zavorotynskiy 2022-05-31 10:40:44 +02:00
parent df18e7dd7d
commit 6e92ba2e79
2 changed files with 4 additions and 1 deletions

View file

@ -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

View file

@ -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)
}