Im new to golang and rabbitmq, I have written a simple producer like this
package main
import (
"fmt"
"github.com/streadway/amqp"
"log"
)
func main() {
server()
}
func server() {
conn, ch, q := getQueue()
defer conn.Close()
defer ch.Close()
msg := amqp.Publishing{
ContentType: "text/plain",
Body: []byte("Hello RabbitMQ"),
}
ch.Publish("", q.Name, false, false, msg)
}
func getQueue() (*amqp.Connection, *amqp.Channel, *amqp.Queue) {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
failOnError(err, "Failed to connect to RabbitMQ")
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
q, err := ch.QueueDeclare("hello",
false, //durable bool,
false, //autoDelete bool,
false, //exclusive bool,
false,
nil)
failOnError(err, "Failed to declare queue")
return conn, ch, &q
}
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
panic(fmt.Sprintf("%s: %s", msg, err))
}
}
When I run this it doesnt exit niether does it throw any error messages. In the RabbitMQ management console I can see the Queue but there is no data in it and only shows NaN.