package Consumer import ( "github.com/streadway/amqp" "log" ) type Consumer interface { Consumer([]byte) error } func consum(channel *amqp.Channel, queue *amqp.Queue) error { //autoAck为true时,消费者拿到消息后该消息从队列中清除;autoAck为false时,消费者执行msg.Ack(false)后消息才会清除 msgs, err := channel.Consume(queue.Name, "", true, false, false, false, nil) if err != nil { return err } forever := make(chan bool) go func() { for msg := range msgs { log.Printf("Received a message: %s", msg.Body) } }() log.Printf(" [*] Waiting for messages. To exit press CTRL+C") <-forever return nil }