MCPcopy Index your code
hub / github.com/NdoleStudio/httpsms / enqueue

Method enqueue

api/pkg/services/event_dispatcher_service.go:88–102  ·  view source on GitHub ↗
(ctx context.Context, event cloudevents.Event, task *PushQueueTask, timeout time.Duration)

Source from the content-addressed store, hash-verified

86}
87
88func (dispatcher *EventDispatcher) enqueue(ctx context.Context, event cloudevents.Event, task *PushQueueTask, timeout time.Duration) (string, error) {
89 ctx, span, ctxLogger := dispatcher.tracer.StartWithLogger(ctx, dispatcher.logger)
90 defer span.End()
91
92 queueID, err := dispatcher.queue.Enqueue(ctx, task, timeout)
93 if errors.Is(err, context.DeadlineExceeded) {
94 msg := fmt.Sprintf("cannot enqueue event with ID [%s] and type [%s] to [%T]", event.ID(), event.Type(), dispatcher.queue)
95 ctxLogger.Warn(stacktrace.Propagate(err, msg))
96 queueID, err = fmt.Sprintf("local-%s", event.ID()), nil
97 time.AfterFunc(timeout, func() {
98 dispatcher.Publish(ctx, event)
99 })
100 }
101 return queueID, err
102}
103
104// Dispatch a new event by adding it to the queue to be processed async
105func (dispatcher *EventDispatcher) Dispatch(ctx context.Context, event cloudevents.Event) error {

Callers 1

DispatchWithTimeoutMethod · 0.95

Calls 4

PublishMethod · 0.95
StartWithLoggerMethod · 0.65
EnqueueMethod · 0.65
WarnMethod · 0.65

Tested by

no test coverage detected