Skip to content

Instantly share code, notes, and snippets.

@iamgoangle
Created June 29, 2019 10:56
Show Gist options
  • Select an option

  • Save iamgoangle/7fef8195dababb8a56ed5702ead89c2c to your computer and use it in GitHub Desktop.

Select an option

Save iamgoangle/7fef8195dababb8a56ed5702ead89c2c to your computer and use it in GitHub Desktop.
package main
import (
"log"
"github.com/iamgoangle/rabbit-go/internal/rabbitmq"
)
func main() {
conn, err := rabbitmq.NewConnection(rabbitmq.ConfigConnection{
Type: "standalone",
Url: "amqp://admin:1234@localhost:5672/",
})
if err != nil {
log.Fatalln("[main]: unable to connect RabbitMQ %+v", err)
}
rbMqConfig := rabbitmq.ConfigConsumer{
Exchange: rabbitmq.ConfigExchange{
Type: rabbitmq.ExchangeFanout,
Name: "asia.exchange.fanout",
Durable: true,
},
Queue: rabbitmq.ConfigQueue{
Name: "",
Exclusive: true,
Bind: rabbitmq.ConfigQueueBind{
ExchangeName: "asia.exchange.fanout",
RoutingKey: "",
},
},
}
consumer, err := rabbitmq.NewConsumer(conn, rbMqConfig)
if err != nil {
log.Panic(err)
}
msgs, err := consumer.WorkerProcessor()
if err != nil {
log.Panic(err)
}
forever := make(chan bool)
go func() {
for m := range msgs {
log.Println("Received a message: %s", string(m.Body))
log.Println("Done")
m.Ack(false)
}
}()
<-forever
consumer.Close()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment