package mq import ( "fmt" "github.com/streadway/amqp" ) func (r *RabbitMQ) PublishSimple(message []byte) { err := r.channel.Publish( "", r.QueueName, // 如果为true 根据exchange 类型 和 routkey规则、 如果无法找到符合条件的队列、那么会把发送完的消息返回给发送者 false, // 如果为true 当exchange发送消息 到队列后发现队列上没有绑定消费者, 则会把消息还给 发送者 false, amqp.Publishing{ // 消息持久化 DeliveryMode: amqp.Persistent, ContentType: "text/plain", Body: message, }, ) if err != nil { fmt.Println("err publish:", err) return } } // Step 1. Simple 创建实例 func NewRabbitMQSimple(queueName string) *RabbitMQ { //在simple模式下 exchange and key 都为空 rabbitMQ, err := newRabbitMQ(queueName, "", "") if err != nil { fmt.Println("NewRabbitMQSimple err:", err) return nil } return rabbitMQ } // //// Step 2. Simple producer code //// 2.1 申请队列、 如果队列不存在则会自动创建、 如果存在则跳过创建 //// 保证队列存在、 消息能发送到队列中 //func (r *RabbitMQ) IsQueue() error { // _, err := r.channel.QueueDeclare( // r.QueueName, // //是否持久化 // true, // // 是否自动删除 // false, // // 是否具有排他性 // false, // //是否阻塞 // false, // // 额外属性 // nil, // ) // // if err != nil { // fmt.Println(5) // fmt.Println(err) // return err // } // return nil //} // 2.2 发送消息到队列中 //func (r *RabbitMQ) PublishSimple(message []byte) { // //fmt.Println("push:", string(message)) // // err := r.channel.Publish( // r.Exchange, // r.QueueName, // // 如果为true 根据exchange 类型 和 routkey规则、 如果无法找到符合条件的队列、那么会把发送完的消息返回给发送者 // false, // // 如果为true 当exchange发送消息 到队列后发现队列上没有绑定消费者, 则会把消息还给 发送者 // false, // amqp.Publishing{ // // 消息持久化 // DeliveryMode: amqp.Persistent, // ContentType: "text/plain", // Body: message, // }, // ) // if err != nil { // fmt.Println(6) // fmt.Println(err) // return // } // // return //}