rabbitmq操作
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.2 KiB

package rabbitmq
import (
"errors"
"log"
"github.com/streadway/amqp"
)
var Conn *amqp.Connection
var Chan *amqp.Channel
func Connect(host, port, username, pwd, vhost string) error {
log.Println("RabbitMQ connecting...")
var err error
if username != "" && pwd != "" && host != "" && port != "" {
if vhost == "" {
vhost = "/"
}
Conn, err = amqp.Dial("amqp://" + username + ":" + pwd + "@" + host + ":" + port + "/" + vhost)
if err != nil {
log.Println("ERROR", "Failed to connect to RabbitMQ", err)
} else {
log.Println("RabbitMQ has connected")
}
// defer conn.Close()
} else {
log.Println("ERROR", "RabbitMQ connection params errors")
err = errors.New("RabbitMQ connection params errors")
}
return err
}
func Channel() error {
var err error
Chan, err = Conn.Channel()
if err != nil {
log.Println("ERROR", "Failed to open a channel")
} else {
log.Println("open a channel")
}
// defer ch.Close()
return err
}
func CloseChannel() error {
err := Chan.Close()
if err == nil {
log.Println("RabbitMQ channel closed")
}
return err
}
func CloseConn() error {
err := Conn.Close()
if err == nil {
log.Println("RabbitMQ connection closed")
}
return err
}