// Package mq provides read or write access to message queue services package mq import ( "context" "modelRT/logger" "modelRT/mq/event" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/propagation" ) // TryEmitMessage pushes a message record into MessageMsgChan non-blocking. // If the channel is full the message is dropped and a warning is logged. func TryEmitMessage(ctx context.Context, record *event.EventRecord) { carrier := make(map[string]string) otel.GetTextMapPropagator().Inject(ctx, propagation.MapCarrier(carrier)) msg := &EventMessage{Record: record, TraceCarrier: carrier} select { case MessageMsgChan <- msg: default: logger.Warn(ctx, "message channel full, message dropped", "event_uuid", record.EventUUID, "category", record.Category, ) } }