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