|
|
|
@ -27,8 +27,31 @@ go get github.com/wagslane/go-rabbitmq |
|
|
|
|
|
|
|
## 🚀 Quick Start Consumer |
|
|
|
|
|
|
|
### Default options |
|
|
|
|
|
|
|
```go |
|
|
|
consumer, err := rabbitmq.GetConsumer( |
|
|
|
consumer, err := rabbitmq.NewConsumer("amqp://user:pass@localhost") |
|
|
|
if err != nil { |
|
|
|
log.Fatal(err) |
|
|
|
} |
|
|
|
err = consumer.StartConsuming( |
|
|
|
func(d rabbitmq.Delivery) bool { |
|
|
|
log.Printf("consumed: %v", string(d.Body)) |
|
|
|
// true to ACK, false to NACK |
|
|
|
return true |
|
|
|
}, |
|
|
|
"my_queue", |
|
|
|
[]string{"routing_key1", "routing_key2"} |
|
|
|
) |
|
|
|
if err != nil { |
|
|
|
log.Fatal(err) |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### With options |
|
|
|
|
|
|
|
```go |
|
|
|
consumer, err := rabbitmq.NewConsumer( |
|
|
|
"amqp://user:pass@localhost", |
|
|
|
// can pass nothing for no logging |
|
|
|
func(opts *rabbitmq.ConsumerOptions) { |
|
|
|
@ -56,16 +79,27 @@ err = consumer.StartConsuming( |
|
|
|
if err != nil { |
|
|
|
log.Fatal(err) |
|
|
|
} |
|
|
|
|
|
|
|
// block main thread so consumers run forever |
|
|
|
forever := make(chan struct{}) |
|
|
|
<-forever |
|
|
|
``` |
|
|
|
|
|
|
|
## 🚀 Quick Start Publisher |
|
|
|
|
|
|
|
### Default options |
|
|
|
|
|
|
|
```go |
|
|
|
publisher, returns, err := rabbitmq.NewPublisher("amqp://user:pass@localhost") |
|
|
|
if err != nil { |
|
|
|
log.Fatal(err) |
|
|
|
} |
|
|
|
err = publisher.Publish([]byte("hello, world"), []string{"routing_key"}) |
|
|
|
if err != nil { |
|
|
|
log.Fatal(err) |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### With options |
|
|
|
|
|
|
|
```go |
|
|
|
publisher, returns, err := rabbitmq.GetPublisher( |
|
|
|
publisher, returns, err := rabbitmq.NewPublisher( |
|
|
|
"amqp://user:pass@localhost", |
|
|
|
// can pass nothing for no logging |
|
|
|
func(opts *rabbitmq.PublisherOptions) { |
|
|
|
|