package mq import ( "github.com/streadway/amqp" "matchmaking-system/internal/conf" "matchmaking-system/internal/data/mq/consumer" "matchmaking-system/internal/data/mq/producers" "matchmaking-system/internal/pkg/logging/applogger" ) // NewMqProducer // // @Description: TODO: 实例化Mq生产者 // @param c // @return *producers.Producer func NewMqProducer(c *conf.Data) *producers.Producer { conn, err := initMq(c.Mq.Address) if err != nil { applogger.Error("NewMq err:%v", err) return nil } // 生产者实例 p, err := producers.NewProducer(c, conn) if err != nil { return nil } return p } // NewMqConsumer TODO: 实例化Mq消费者 // // @Description: // @param c // @return *consumer.Consumer func NewMqConsumer(c *conf.Data) *consumer.Consumer { conn, err := initMq(c.Mq.Address) if err != nil { applogger.Error("NewMq err:%v", err) return nil } // 消费者实例 cn, err := consumer.NewConsumer(c, conn) if err != nil { return nil } return cn } // initMq 实例化Mq(生产者|消费者)消息队列 // // @Description: // @param c // @return *amqp.Connection // @return error func initMq(address string) (*amqp.Connection, error) { conn, err := amqp.Dial(address) if err != nil { applogger.Error("NewMq err:%v", err) return nil, err } return conn, nil }