Leon4gr45's picture
Upload folder using huggingface_hub (part 6)
d6f631f verified
Raw
History Blame Contribute Delete
1.07 kB
package eventhandler
import (
"context"
"runtime/debug"
"go.opentelemetry.io/otel/trace"
"github.com/openmeterio/openmeter/openmeter/notification"
"github.com/openmeterio/openmeter/pkg/framework/tracex"
)
func (h *Handler) Dispatch(ctx context.Context, event *notification.Event) error {
spanLink := trace.LinkFromContext(ctx)
fn := func(ctx context.Context) error {
return h.reconcileEvent(ctx, event)
}
go func() {
defer func() {
if err := recover(); err != nil {
h.logger.Error("notification event handler panicked",
"error", err,
"code.stacktrace", string(debug.Stack()))
}
}()
ctx, cancel := context.WithTimeout(context.Background(), notification.DefaultDispatchTimeout)
defer cancel()
tracerOpts := []trace.SpanStartOption{
trace.WithNewRoot(),
trace.WithLinks(spanLink),
}
err := tracex.StartWithNoValue(ctx, h.tracer, "event_handler.dispatch", tracerOpts...).Wrap(fn)
if err != nil {
h.logger.WarnContext(ctx, "failed to dispatch event", "eventID", event.ID, "error", err)
}
}()
return nil
}