consumer.go 654 B

12345678910111213141516171819202122232425262728
  1. package Consumer
  2. import (
  3. "github.com/streadway/amqp"
  4. "log"
  5. )
  6. type Consumer interface {
  7. Consumer([]byte) error
  8. }
  9. func consum(channel *amqp.Channel, queue *amqp.Queue) error {
  10. //autoAck为true时,消费者拿到消息后该消息从队列中清除;autoAck为false时,消费者执行msg.Ack(false)后消息才会清除
  11. msgs, err := channel.Consume(queue.Name, "", true, false, false, false, nil)
  12. if err != nil {
  13. return err
  14. }
  15. forever := make(chan bool)
  16. go func() {
  17. for msg := range msgs {
  18. log.Printf("Received a message: %s", msg.Body)
  19. }
  20. }()
  21. log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
  22. <-forever
  23. return nil
  24. }