Skip to content

Commit 45bc910

Browse files
committed
Add 1 second delay when publishing message sent event
1 parent 863ef72 commit 45bc910

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

api/pkg/services/message_service.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ func (service *MessageService) handleMessageDeliveredEvent(ctx context.Context,
317317
return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
318318
}
319319

320-
if err = service.eventDispatcher.Dispatch(ctx, event); err != nil {
320+
if _, err = service.eventDispatcher.DispatchWithTimeout(ctx, event, time.Second); err != nil {
321321
msg := fmt.Sprintf("cannot dispatch event type [%s] and id [%s]", event.Type(), event.ID())
322322
return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
323323
}
@@ -511,6 +511,11 @@ func (service *MessageService) HandleMessageSent(ctx context.Context, params Han
511511
return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
512512
}
513513

514+
if message.IsSent() || message.IsDelivered() {
515+
ctxLogger.Info(fmt.Sprintf("message [%s] for [%s] has already been processed with status [%s]", message.ID, message.UserID, message.Status))
516+
return nil
517+
}
518+
514519
if !message.IsSending() && !message.IsExpired() {
515520
msg := fmt.Sprintf("message has wrong status [%s]. expected [%s, %s]", message.Status, entities.MessageStatusSending, entities.MessageStatusExpired)
516521
return service.tracer.WrapErrorSpan(span, stacktrace.NewError(msg))

0 commit comments

Comments
 (0)