| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package main
- import (
- "log"
- "github.com/streadway/amqp"
- )
- func failOnError(err error, msg string) {
- if err != nil {
- log.Fatalf("%s: %s", msg, err)
- }
- }
- func main() {
- conn, err := amqp.Dial("amqp://user:J70e6K7BRrxrU1dO@rabbitmq.rabbitmq.svc.cluster.local:5672/")
- failOnError(err, "Failed to connect to RabbitMQ")
- defer conn.Close()
- ch, err := conn.Channel()
- failOnError(err, "Failed to open a channel")
- defer ch.Close()
- q, err := ch.QueueDeclare(
- "task_queue", // 队列名称
- true, // durable 持久化队列
- false, // autoDelete
- false, // exclusive
- false, // noWait
- nil, // arguments
- )
- failOnError(err, "Failed to declare a queue")
- msgs, err := ch.Consume(
- q.Name, // queue
- "", // consumer
- true, // auto-ack
- false, // exclusive
- false, // no-local
- false, // no-wait
- nil, // args
- )
- failOnError(err, "Failed to register a consumer")
- log.Println(" [*] Waiting for messages. To exit press CTRL+C")
- forever := make(chan bool)
- go func() {
- for d := range msgs {
- log.Printf("Received a message: %s", d.Body)
- }
- }()
- <-forever
- }
|