Reputation: 596
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.
Upvotes: 1
Views: 807
Reputation: 335
It's probably an issue with your setup. I faced a similar issue and tried with a different Erlang and RabbitMQ installation. Try uninstalling both Erlang and RabbitMQ and maybe use an older stable version.
Alternatively use the official RabbitMQ docker image. Follow the Docker RabbitMQ Docs for setting it up. :)
Upvotes: 1