@@ -10,10 +10,12 @@ import (
1010
1111 "github.com/bxcodec/goqueue"
1212 "github.com/bxcodec/goqueue/consumer"
13- rmqConsumer "github.com/bxcodec/goqueue/consumer/rabbitmq "
13+ "github.com/bxcodec/goqueue/interfaces "
1414 "github.com/bxcodec/goqueue/middleware"
15+ "github.com/bxcodec/goqueue/options"
16+ consumerOpts "github.com/bxcodec/goqueue/options/consumer"
17+ publisherOpts "github.com/bxcodec/goqueue/options/publisher"
1518 "github.com/bxcodec/goqueue/publisher"
16- rmqPublisher "github.com/bxcodec/goqueue/publisher/rabbitmq"
1719)
1820
1921func initExchange (ch * amqp.Channel , exchangeName string ) error {
@@ -35,9 +37,14 @@ func main() {
3537 panic (err )
3638 }
3739
38- rmqPub := rmqPublisher .NewPublisher (rmqConn ,
39- publisher .WithPublisherID ("publisher_id" ),
40- publisher .WithMiddlewares (
40+ rmqPub := publisher .NewPublisher (
41+ publisherOpts .PublisherPlatformRabbitMQ ,
42+ publisherOpts .WithRabbitMQPublisherConfig (& publisherOpts.RabbitMQPublisherConfig {
43+ Conn : rmqConn ,
44+ PublisherChannelPoolSize : 5 ,
45+ }),
46+ publisherOpts .WithPublisherID ("publisher_id" ),
47+ publisherOpts .WithMiddlewares (
4148 middleware .HelloWorldMiddlewareExecuteBeforePublisher (),
4249 middleware .HelloWorldMiddlewareExecuteAfterPublisher (),
4350 ),
@@ -56,35 +63,36 @@ func main() {
5663 panic (err )
5764 }
5865 defer consumerChannel .Close ()
59-
60- rmqConsumer := rmqConsumer .NewConsumer (
61- publisherChannel ,
62- consumerChannel ,
63- consumer .WithMiddlewares (
66+ rmqConsumer := consumer .NewConsumer (
67+ consumerOpts .ConsumerPlatformRabbitMQ ,
68+ consumerOpts .WithRabbitMQConsumerConfig (& consumerOpts.RabbitMQConsumerConfig {
69+ ConsumerChannel : consumerChannel ,
70+ ReQueueChannel : publisherChannel ,
71+ }),
72+ consumerOpts .WithConsumerID ("consumer_id" ),
73+ consumerOpts .WithMiddlewares (
6474 middleware .HelloWorldMiddlewareExecuteAfterInboundMessageHandler (),
6575 middleware .HelloWorldMiddlewareExecuteBeforeInboundMessageHandler (),
6676 ),
67- consumer .WithQueueName ("consumer_queue" ),
68- consumer .WithConsumerID ("consumer_id" ),
69- consumer .WithBatchMessageSize (1 ),
70- consumer .WithMaxRetryFailedMessage (3 ),
71- consumer .WithActionsPatternSubscribed ("goqueue.payments.#" , "goqueue.users.#" ),
72- consumer .WithTopicName ("goqueue" ),
77+ consumerOpts .WithMaxRetryFailedMessage (3 ),
78+ consumerOpts .WithBatchMessageSize (1 ),
79+ consumerOpts .WithActionsPatternSubscribed ("goqueue.payments.#" , "goqueue.users.#" ),
80+ consumerOpts .WithTopicName ("goqueue" ),
81+ consumerOpts .WithQueueName ("consumer_queue" ),
7382 )
7483
7584 queueSvc := goqueue .NewQueueService (
76- goqueue . WithPublisher ( rmqPub ),
77- goqueue . WithConsumer ( rmqConsumer ),
78- goqueue .WithMessageHandler (handler ()),
85+ options . WithConsumer ( rmqConsumer ),
86+ options . WithPublisher ( rmqPub ),
87+ options .WithMessageHandler (handler ()),
7988 )
80-
8189 go func () {
8290 for i := 0 ; i < 10 ; i ++ {
8391 data := map [string ]interface {}{
8492 "message" : fmt .Sprintf ("Hello World %d" , i ),
8593 }
8694 jbyt , _ := json .Marshal (data )
87- err := queueSvc .Publish (context .Background (), goqueue .Message {
95+ err := queueSvc .Publish (context .Background (), interfaces .Message {
8896 Data : data ,
8997 Action : "goqueue.payments.create" ,
9098 Topic : "goqueue" ,
@@ -105,8 +113,8 @@ func main() {
105113 }
106114}
107115
108- func handler () goqueue .InboundMessageHandlerFunc {
109- return func (ctx context.Context , m goqueue .InboundMessage ) (err error ) {
116+ func handler () interfaces .InboundMessageHandlerFunc {
117+ return func (ctx context.Context , m interfaces .InboundMessage ) (err error ) {
110118 data := m .Data
111119 jbyt , _ := json .Marshal (data )
112120 fmt .Println ("Message Received: " , string (jbyt ))
0 commit comments