box-o-sand/sylvilagus/go/sylvilagus-ch02-hello-world-consumer/main.go

46 lines
864 B
Go
Raw Normal View History

package main
import (
"log"
)
import (
"github.com/meatballhat/box-o-sand/sylvilagus/go/sylvilagus"
"github.com/streadway/amqp"
)
func main() {
connection, err := amqp.Dial(sylvilagus.AMQP_URI)
if err != nil {
log.Fatal("Failed to connect!: ", err)
}
defer connection.Close()
channel, err := sylvilagus.CreateHelloTopology(connection)
if err != nil {
log.Fatal("Failed to build topology!: ", 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)
2012-11-15 04:47:08 +00:00
go func(quit chan bool) {
log.Println("Consuming...")
2012-11-15 03:27:46 +00:00
for hello := range hellos {
2012-11-15 04:47:08 +00:00
log.Printf("hello -> %v\n", string(hello.Body))
2012-11-15 03:27:46 +00:00
hello.Ack(false)
2012-11-15 04:47:08 +00:00
if string(hello.Body) == "quit" {
quit <- true
return
}
2012-11-15 03:27:46 +00:00
}
2012-11-15 04:47:08 +00:00
}(quit)
2012-11-15 03:27:46 +00:00
<-quit
}