diff --git a/mq/export.go b/mq/export.go index bdb4b59..d161a52 100644 --- a/mq/export.go +++ b/mq/export.go @@ -55,18 +55,18 @@ type RabbitMQData struct { Data interface{} } -func (c *MessageMgr) Send(data interface{}, name ...string) error { +func (c *MessageMgr) Send(data interface{}, name string, options ...broker.PublishOption) error { if msg, ok := data.(*RabbitMQData); ok { - return Send(msg.MQName, msg.Data) + return Send(msg.MQName, msg.Data, options...) } - if len(name) > 0 && name[0] != "" { - return Send(name[0], data) + if len(name) > 0 { + return Send(name, data, options...) } key := c.getName(data) if key == "" { key = "_null_" } - return Send(key, data) + return Send(key, data, options...) } type RegisterHandlerParam struct { @@ -132,7 +132,14 @@ func RegisterMessage(param *RegisterMessageParam) { // Write 发送消息 // 默认队列名称规则:队列前缀_消息结构体名称 func Write(data interface{}, name ...string) error { - return MessageMgrSingle.Send(data, name...) + if len(name) > 0 && name[0] != "" { + return MessageMgrSingle.Send(data, name[0]) + } + return MessageMgrSingle.Send(data, "") +} + +func WriteWithOptions(data interface{}, name string, opts ...broker.PublishOption) error { + return MessageMgrSingle.Send(data, name, opts...) } // RegisterHandler 注册消息处理函数