| 12345678910111213141516171819202122232425262728 |
- 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
- }
|