Pulsar: do not disconnect in case of error processing message

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
This commit is contained in:
ItalyPaleAle 2022-06-27 21:29:54 +00:00
parent c3f8b78e0d
commit 476b95990f
2 changed files with 5 additions and 4 deletions

View File

@ -287,12 +287,13 @@ func (p *Pulsar) Subscribe(ctx context.Context, req pubsub.SubscribeRequest, han
func (p *Pulsar) listenMessage(ctx context.Context, originTopic string, consumer pulsar.Consumer, handler pubsub.Handler) {
defer consumer.Close()
var err error
for {
select {
case msg := <-consumer.Chan():
if err := p.handleMessage(ctx, originTopic, msg, handler); err != nil && !errors.Is(err, context.Canceled) {
p.logger.Errorf("Error processing message and retries are exhausted: %s/%#v [key=%s]. Closing consumer.", msg.Topic(), msg.ID(), msg.Key())
return
err = p.handleMessage(ctx, originTopic, msg, handler)
if err != nil && !errors.Is(err, context.Canceled) {
p.logger.Errorf("Error processing message: %s/%#v [key=%s]: %v", msg.Topic(), msg.ID(), msg.Key(), err)
}
case <-ctx.Done():

View File

@ -11,4 +11,4 @@ spec:
- name: consumerID
value: myConsumerID
- name: redeliveryDelay
value: 1s
value: 500ms