60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
|
|
package rabbitmq
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
configYaml "common/configsYaml"
|
|||
|
|
"goutil/logUtil"
|
|||
|
|
"strconv"
|
|||
|
|
|
|||
|
|
"github.com/streadway/amqp"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
var RabbitMQConn *amqp.Connection
|
|||
|
|
var RabbitMQChannel *amqp.Channel
|
|||
|
|
|
|||
|
|
// 初始化rabbitMQ
|
|||
|
|
func init() {
|
|||
|
|
|
|||
|
|
rabbitMQAddress := configYaml.GetRabbitMQAddress()
|
|||
|
|
|
|||
|
|
//是否有mq配置
|
|||
|
|
if rabbitMQAddress == "" {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 连接到 RabbitMQ 服务器
|
|||
|
|
var err error
|
|||
|
|
RabbitMQConn, err = amqp.Dial(rabbitMQAddress)
|
|||
|
|
if err != nil {
|
|||
|
|
|
|||
|
|
//抛出一个异常
|
|||
|
|
logUtil.FatalLog("Failed to connect to RabbitMQ: %s,err:%s", rabbitMQAddress, err.Error())
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 打开一个通道
|
|||
|
|
RabbitMQChannel, err = RabbitMQConn.Channel()
|
|||
|
|
if err != nil {
|
|||
|
|
|
|||
|
|
//抛出一个异常
|
|||
|
|
logUtil.FatalLog("Failed to open a channel,err:%s", err.Error())
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//循环数据库数量
|
|||
|
|
for _, index := range configYaml.GetDBNum() {
|
|||
|
|
//队列名称
|
|||
|
|
queueName := configYaml.GetRabbitMQName() + ":" + strconv.Itoa(index)
|
|||
|
|
|
|||
|
|
// 声明一个队列
|
|||
|
|
_, err = RabbitMQChannel.QueueDeclare(
|
|||
|
|
queueName, // 队列名称
|
|||
|
|
true, // 是否持久化
|
|||
|
|
false, // 是否在使用后删除
|
|||
|
|
false, // 是否排他
|
|||
|
|
false, // 是否阻塞
|
|||
|
|
nil, // 其他参数
|
|||
|
|
)
|
|||
|
|
if err != nil {
|
|||
|
|
logUtil.FatalLog("Failed to declare a queue,queueName:%s,err:%s", queueName, err.Error())
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|