Browse Source

update

tags/v0.0.3
DengBiao 2 years ago
parent
commit
1ef02e9202
1 changed files with 43 additions and 23 deletions
  1. +43
    -23
      rabbit/pool.go

+ 43
- 23
rabbit/pool.go View File

@@ -284,14 +284,27 @@ func (ch *Channel) QueueDelete(queue string) {
}

//初始化队列
func (ch *Channel) NewQueue(name string, typename string) {
func (ch *Channel) NewQueue(name string, args ...bool) {
var durable, autoDelete, exclusive, noWait = true, false, false, false
if len(args) > 0 {
durable = args[0]
}
if len(args) > 1 {
autoDelete = args[1]
}
if len(args) > 2 {
exclusive = args[2]
}
if len(args) > 3 {
noWait = args[3]
}
q, e := ch.Channel.QueueDeclare(
name, //队列名
false, //是否开启持久化
false, //不使用时删除
false, //排他
false, //不等待
nil, //参数
name, //队列名
durable, //是否开启持久化
autoDelete, //不使用时删除
exclusive, //排他
noWait, //不等待
nil, //参数
)
failOnError(e, "初始化队列失败!")
ch.Name = q.Name
@@ -299,23 +312,30 @@ func (ch *Channel) NewQueue(name string, typename string) {

// NewExchange 初始化交换机
//s:rabbitmq服务器的链接,name:交换机名字,typename:交换机类型
func NewExchange(s string, name string, typename string) {
//连接rabbitmq
conn, e := amqp.Dial(s)
failOnError(e, "连接Rabbitmq服务器失败!")
ch, e := conn.Channel()
failOnError(e, "无法打开频道!")
e = ch.ExchangeDeclare(
name, // name
typename, // type
true, // durable
false, // auto-deleted
false, // internal
false, // no-wait
nil, // arguments
func (ch *Channel) NewExchange(name string, typename string, args ...bool) {
var durable, autoDelete, internal, noWait = true, false, false, false
if len(args) > 0 {
durable = args[0]
}
if len(args) > 1 {
autoDelete = args[1]
}
if len(args) > 2 {
internal = args[2]
}
if len(args) > 3 {
noWait = args[3]
}
e := ch.ExchangeDeclare(
name, // name
typename, // type
durable, // durable
autoDelete, // auto-deleted
internal, // 是否只在rabbitmq server内部使用
noWait, // no-wait
nil, // arguments
)
failOnError(e, "初始化交换机失败!")

}

// ExchangeDelete 删除交换机
@@ -349,7 +369,7 @@ func (ch *Channel) Send(queue string, body interface{}) {
str, e := json.Marshal(body)
failOnError(e, "消息序列化失败!")
e = ch.Channel.Publish(
"", //交换
"", //交换
queue, //路由键
false, //必填
false, //立即


Loading…
Cancel
Save