Documentation ¶
Index ¶
- Constants
- Variables
- func NewContext(ctx context.Context, msg Message) context.Context
- func RegisterConsumer(consumer Consumer)
- type Consume
- type Consumer
- type Event
- type Logger
- type MQMessage
- func (m *MQMessage) Encode(ctx context.Context) Message
- func (m *MQMessage) Event() Event
- func (m *MQMessage) OrderID() int64
- func (m *MQMessage) OrderMessage() OrderMessage
- func (m *MQMessage) RequestID() string
- func (m *MQMessage) Scan(value interface{}) error
- func (m MQMessage) Value() (driver.Value, error)
- func (m *MQMessage) WithOrderID(orderID int64) OrderMessage
- func (m *MQMessage) WithRequestID(requestID string) OrderMessage
- type Message
- type OrderMessage
- type Provider
- type Queue
Constants ¶
View Source
const ( ConsumerNotFound = "consumer not found" MaxRetry = 5 )
View Source
const (
RequestID string = "request_id"
)
message keys
Variables ¶
Functions ¶
func RegisterConsumer ¶
func RegisterConsumer(consumer Consumer)
Types ¶
type Consumer ¶
type Consumer interface { // consumer name. one recommended format `{service_name}:{internal_name}:{event_name}` Name() string // which event this consumer subscribes to Event() Event // consumer can decide whether it wants to consume its message in delayed time Delay() time.Duration // consume one message Consume(ctx context.Context, tx pgx.Tx, msg *MQMessage) error }
type Event ¶
type Event string
event
const ( // event when order is created EventOrderCreated Event = "order_created" )
type MQMessage ¶
type MQMessage struct { // event MQEvent Event `json:"event"` // request id MQRequestID string `json:"request_id,omitempty"` // order id, optional MQOrderID int64 `json:"order_id,omitempty"` }
MQMessage holds message data, which will be saved at db table
func (*MQMessage) OrderMessage ¶
func (m *MQMessage) OrderMessage() OrderMessage
convert struct to message interface to be used by consumer
func (*MQMessage) WithOrderID ¶
func (m *MQMessage) WithOrderID(orderID int64) OrderMessage
func (*MQMessage) WithRequestID ¶
func (m *MQMessage) WithRequestID(requestID string) OrderMessage
type Message ¶
type Message interface { // encode the message to be saved into postgres table Encode(ctx context.Context) Message // get event Event() Event // get request id RequestID() string }
RocketMessage reprents one message used to encode and decode custom information.
type OrderMessage ¶
type OrderMessage interface { Message // set order id WithOrderID(orderID int64) OrderMessage // get order id OrderID() int64 }
Order Message
Source Files ¶
Click to show internal directories.
Click to hide internal directories.