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:
parent
c3f8b78e0d
commit
476b95990f
|
@ -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():
|
||||
|
|
|
@ -11,4 +11,4 @@ spec:
|
|||
- name: consumerID
|
||||
value: myConsumerID
|
||||
- name: redeliveryDelay
|
||||
value: 1s
|
||||
value: 500ms
|
Loading…
Reference in New Issue