box-o-sand/sylvilagus/go/src/meatballhat.com/sylvilagus-chapter02-hello-world-consumer/main.go

55 lines
1.1 KiB
Go
Raw Normal View History

package main
import (
"log"
)
import (
"github.com/streadway/amqp"
)
func main() {
connection, err := amqp.Dial("amqp://guest:guest@localhost:5672")
if err != nil {
log.Fatal("Failed to connect!: ", err)
}
defer connection.Close()
channel, err := connection.Channel()
if err != nil {
log.Fatal("Failed to get channel!: ", err)
}
err = channel.ExchangeDeclare("hello-exchange", "direct", true, false, false, false, nil)
if err != nil {
log.Fatal("Failed to declare exchange!: ", err)
}
2012-11-15 03:27:46 +00:00
_, err = channel.QueueDeclare("hello-queue", true, false, false, false, nil)
if err != nil {
log.Fatal("Failed to declare queue!: ", err)
}
err = channel.QueueBind("hello-queue", "hola", "hello-exchange", false, nil)
if err != nil {
log.Fatal("Failed to bind to queue!: ", err)
}
2012-11-15 03:27:46 +00:00
hellos, err := channel.Consume("hello-queue", "hello-consumer", false, false, false, false, nil)
if err != nil {
log.Fatal("Failed to start consuming!:", err)
}
quit := make(chan bool)
go func() {
for hello := range hellos {
log.Println("hello ->", hello)
hello.Ack(false)
}
}()
<-quit
}