29 lines
789 B
Go
29 lines
789 B
Go
// 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,
|
|
)
|
|
}
|
|
}
|