连接池,redis,和配置文件
This commit is contained in:
@@ -23,8 +23,13 @@ func NewPublisher(exchange, routingKey string) *Publisher {
|
||||
}
|
||||
}
|
||||
|
||||
// Publish 发布消息
|
||||
// Publish 发布消息(使用默认 routing key)
|
||||
func (p *Publisher) Publish(ctx context.Context, message interface{}) (err error) {
|
||||
return p.PublishWithRoutingKey(ctx, p.routingKey, message)
|
||||
}
|
||||
|
||||
// PublishWithRoutingKey 发布消息(指定 routing key)
|
||||
func (p *Publisher) PublishWithRoutingKey(ctx context.Context, routingKey string, message interface{}) (err error) {
|
||||
ch, err := GetChannel()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -39,10 +44,10 @@ func (p *Publisher) Publish(ctx context.Context, message interface{}) (err error
|
||||
// 发布消息
|
||||
err = ch.PublishWithContext(
|
||||
ctx,
|
||||
p.exchange, // exchange
|
||||
p.routingKey, // routing key
|
||||
false, // mandatory
|
||||
false, // immediate
|
||||
p.exchange, // exchange
|
||||
routingKey, // routing key
|
||||
false, // mandatory
|
||||
false, // immediate
|
||||
amqp.Publishing{
|
||||
DeliveryMode: amqp.Persistent, // 持久化
|
||||
ContentType: "application/json",
|
||||
@@ -52,12 +57,12 @@ func (p *Publisher) Publish(ctx context.Context, message interface{}) (err error
|
||||
|
||||
if err != nil {
|
||||
g.Log().Errorf(ctx, "发布消息失败: exchange=%s, routingKey=%s, err=%v",
|
||||
p.exchange, p.routingKey, err)
|
||||
p.exchange, routingKey, err)
|
||||
return err
|
||||
}
|
||||
|
||||
g.Log().Debugf(ctx, "消息发布成功: exchange=%s, routingKey=%s",
|
||||
p.exchange, p.routingKey)
|
||||
p.exchange, routingKey)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user