From 8446b578c271448e2a23f4b2152f2d6311168e82 Mon Sep 17 00:00:00 2001 From: Nam Huynh Date: Sat, 26 Mar 2022 00:00:58 +0700 Subject: [PATCH 1/3] dont create consumer if existed --- jetstream_consumer.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jetstream_consumer.go b/jetstream_consumer.go index da38249..b59df80 100644 --- a/jetstream_consumer.go +++ b/jetstream_consumer.go @@ -14,10 +14,17 @@ func (js JetStream) GetConsumerInfo(stream, name string) (*nats.ConsumerInfo, er // AddConsumer ... func (js JetStream) AddConsumer(stream, subject, name string) error { + // Get consumer first, return if existed + consumer, err := js.GetConsumerInfo(stream, name) + if consumer != nil { + return nil + } + + // Generate channel name channel := combineStreamAndSubjectName(stream, subject) // Add - _, err := js.instance.AddConsumer(stream, &nats.ConsumerConfig{ + _, err = js.instance.AddConsumer(stream, &nats.ConsumerConfig{ Durable: name, AckPolicy: nats.AckExplicitPolicy, FilterSubject: channel, From eab463ab57b60c5845e8eadde144b2bb0490bda0 Mon Sep 17 00:00:00 2001 From: Nam Huynh Date: Tue, 12 Apr 2022 17:21:52 +0700 Subject: [PATCH 2/3] update --- server_reqres.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_reqres.go b/server_reqres.go index 303c954..deb9b88 100644 --- a/server_reqres.go +++ b/server_reqres.go @@ -21,7 +21,7 @@ func (sv Server) Reply(msg *nats.Msg, payload []byte) error { err := sv.instance.Publish(msg.Reply, payload) // Ack message - msg.Ack() + // msg.Ack() return err } From b5f1a7e93e41030f99d38b492451d83aea6ed7c4 Mon Sep 17 00:00:00 2001 From: Nam Huynh Date: Tue, 12 Apr 2022 17:39:27 +0700 Subject: [PATCH 3/3] remove ack git reply func --- server_reqres.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/server_reqres.go b/server_reqres.go index deb9b88..e099a41 100644 --- a/server_reqres.go +++ b/server_reqres.go @@ -18,11 +18,7 @@ func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) { // Reply ... func (sv Server) Reply(msg *nats.Msg, payload []byte) error { - err := sv.instance.Publish(msg.Reply, payload) - - // Ack message - // msg.Ack() - return err + return sv.instance.Publish(msg.Reply, payload) } // Subscribe ...