Skip to content

Commit 10487c3

Browse files
committed
Refactor dispatcher method
1 parent af095d5 commit 10487c3

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

api/pkg/services/event_dispatcher_service.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,22 +76,28 @@ func (dispatcher *EventDispatcher) DispatchWithTimeout(ctx context.Context, even
7676
return queueID, dispatcher.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
7777
}
7878

79-
queueID, err = dispatcher.queue.Enqueue(ctx, task, timeout)
79+
if queueID, err = dispatcher.enqueue(ctx, event, task, timeout); err != nil {
80+
msg := fmt.Sprintf("cannot enqueue event with ID [%s] and type [%s]", event.ID(), event.Type())
81+
return queueID, dispatcher.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
82+
}
83+
84+
return queueID, nil
85+
}
86+
87+
func (dispatcher *EventDispatcher) enqueue(ctx context.Context, event cloudevents.Event, task *PushQueueTask, timeout time.Duration) (string, error) {
88+
ctx, span, ctxLogger := dispatcher.tracer.StartWithLogger(ctx, dispatcher.logger)
89+
defer span.End()
90+
91+
queueID, err := dispatcher.queue.Enqueue(ctx, task, timeout)
8092
if errors.Is(err, context.DeadlineExceeded) {
81-
msg := fmt.Sprintf("cannot enqueue event with ID [%s] and type [%s]. publishing locally", event.ID(), event.Type())
93+
msg := fmt.Sprintf("cannot enqueue event with ID [%s] and type [%s] to [%T]", event.ID(), event.Type(), dispatcher.queue)
8294
ctxLogger.Warn(stacktrace.Propagate(err, msg))
8395
queueID, err = fmt.Sprintf("local-%s", event.ID()), nil
8496
time.AfterFunc(timeout, func() {
8597
dispatcher.Publish(ctx, event)
8698
})
8799
}
88-
89-
if err != nil {
90-
msg := fmt.Sprintf("cannot enqueue event with ID [%s] and type [%s]", event.ID(), event.Type())
91-
return queueID, dispatcher.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
92-
}
93-
94-
return queueID, nil
100+
return queueID, err
95101
}
96102

97103
// Dispatch a new event by adding it to the queue to be processed async

0 commit comments

Comments
 (0)