From 6d2bfc0e77d6379f07445fc1efa94820722b31d6 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 21:25:41 +0200 Subject: [PATCH] fix(backend/internals): builder codefix --- backend/internal/builder/builder.go | 16 +++++++++------- backend/internal/builder/builderMap.go | 8 ++++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/backend/internal/builder/builder.go b/backend/internal/builder/builder.go index 38a64ab54..dd7bb675a 100644 --- a/backend/internal/builder/builder.go +++ b/backend/internal/builder/builder.go @@ -1,17 +1,19 @@ package builder import ( + "time" + "openreplay/backend/internal/handlers" . "openreplay/backend/pkg/messages" ) type builder struct { - readyMsgs []Message - timestamp uint64 - lastMessageID uint64 - lastSystemTimestamp int64 - processors []handlers.MessageProcessor - ended bool + readyMsgs []Message + timestamp uint64 + lastMessageID uint64 + lastSystemTime time.Time + processors []handlers.MessageProcessor + ended bool } func NewBuilder(handlers ...handlers.MessageProcessor) *builder { @@ -55,7 +57,7 @@ func (b *builder) handleMessage(message Message, messageID uint64) { } b.timestamp = timestamp - b.lastSystemTimestamp = time.Now().UnixMilli() + b.lastSystemTime = time.Now() for _, p := range b.processors { if rm := p.Handle(message, messageID, b.timestamp); rm != nil { b.readyMsgs = append(b.readyMsgs, rm) diff --git a/backend/internal/builder/builderMap.go b/backend/internal/builder/builderMap.go index fcd52b0cc..af2ecf0d5 100644 --- a/backend/internal/builder/builderMap.go +++ b/backend/internal/builder/builderMap.go @@ -24,7 +24,7 @@ func NewBuilderMap(handlersFabric func() []handlers.MessageProcessor) *builderMa func (m *builderMap) GetBuilder(sessionID uint64) *builder { b := m.sessions[sessionID] if b == nil { - b = NewBuilder(m.handlersFabric()) // Should create new instances + b = NewBuilder(m.handlersFabric()...) // Should create new instances m.sessions[sessionID] = b } return b @@ -36,14 +36,14 @@ func (m *builderMap) HandleMessage(sessionID uint64, msg Message, messageID uint } func (m *builderMap) iterateSessionReadyMessages(sessionID uint64, b *builder, iter func(msg Message)) { - if b.ended || b.lastSystemTimestamp+FORCE_DELETE_TIMEOUT < time.Now().UnixMilli() { + if b.ended || b.lastSystemTime.Add(FORCE_DELETE_TIMEOUT).Before(time.Now()) { for _, p := range b.processors { if rm := p.Build(); rm != nil { b.readyMsgs = append(b.readyMsgs, rm) } } } - b.iterateReadyMessage(iter) + b.iterateReadyMessages(iter) if b.ended { delete(m.sessions, sessionID) } @@ -69,6 +69,6 @@ func (m *builderMap) IterateSessionReadyMessages(sessionID uint64, iter func(msg m.iterateSessionReadyMessages( sessionID, session, - inter, + iter, ) }