From 0d7adb73eb995fd2434325f3549ea224c8a26789 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 2 Sep 2021 10:34:28 +0300 Subject: [PATCH] Improve js executor kafka consumer to exit application in case of not retryable error. --- msa/js-executor/queue/kafkaTemplate.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/msa/js-executor/queue/kafkaTemplate.js b/msa/js-executor/queue/kafkaTemplate.js index 46ded135e6..ca04c715d7 100644 --- a/msa/js-executor/queue/kafkaTemplate.js +++ b/msa/js-executor/queue/kafkaTemplate.js @@ -190,6 +190,16 @@ async function sendMessagesAsBatch(isImmediately) { removeListeners[COMMIT_OFFSETS] = consumer.on(COMMIT_OFFSETS, e => logger.info(`consumer COMMIT_OFFSETS topics ${e.payload.topics}`)); */ + const { CRASH } = consumer.events; + + consumer.on(CRASH, e => { + logger.error(`Got consumer CRASH event, should restart: ${e.payload.restart}`); + if (!e.payload.restart) { + logger.error('Going to exit due to not retryable error!'); + exit(-1); + } + }); + const messageProcessor = new JsInvokeMessageProcessor(new KafkaProducer()); await consumer.connect(); await producer.connect();