package mq import ( "fmt" "github.com/streadway/amqp" ) // 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 func (r *RabbitMQ) PublishSimple(message []byte) error { fmt.Println("push:", string(message)) // 2.1 申请队列、 如果队列不存在则会自动创建、 如果存在则跳过创建 // 保证队列存在、 消息能发送到队列中 _, err := r.channel.QueueDeclare( r.QueueName, //是否持久化 true, // 是否自动删除 false, // 是否具有排他性 false, //是否阻塞 false, // 额外属性 nil, ) if err != nil { return err } // 2.2 发送消息到队列中 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 { return err } return nil } type SetMsgReq struct { ProcedureType int `json:"procedureType"` GroupId string `json:"groupId" db:"group_id"` UserId string `json:"userId" db:"user_id"` BusinessId string `json:"businessId" db:"business_id"` CustomerId string `json:"customerId" db:"customer_id"` Status string `json:"status" db:"status"` StartTime string `json:"startTime" db:"start_time"` EndTime string `json:"endTime" db:"end_time"` Remark string `json:"remark" db:"remark"` Promoter string `json:"promoter" db:"promoter"` Finish string `json:"finish" db:"finish"` ExpertUnread string `json:"expertUnread" db:"expert_unread"` UserUnread string `json:"userUnread" db:"user_unread"` ExpertUnreadMessage string `json:"expertUnreadMessage" db:"expert_unread_message"` ExpertUnreadMessageTime string `json:"expertUnreadMessageTime" db:"expert_unread_message_time"` GuideMsg string `json:"guideMsg" db:"guide_msg"` GuideDate string `json:"guideDate" db:"guide_date"` ReceiveDate string `json:"receiveDate" db:"receive_date"` ConversationDate string `json:"conversationDate" db:"conversation_date"` StartReceiveDate string `json:"startReceiveDate" db:"start_receive_date"` ConversationId string `json:"conversationId" db:"conversation_id"` PromoterType string `json:"promoterType" db:"promoter_type"` SendTime string `json:"sendTime" db:"send_time"` MsgType int `json:"msgType" db:"msg_type"` Content string `json:"content" db:"content"` Sender string `json:"sender" db:"sender"` Receiver string `json:"receiver" db:"receiver"` HandleTime string `json:"handleTime" db:"handle_time"` HandlePersonId string `json:"handlePersonId" db:"handle_person_id"` HandlePerson string `json:"handlePerson" db:"handle_person"` }