Как использовать ContainerStoppingErrorHandler в @KafkaListener для прекращения работы приложения в случае сервера Kafka DisconnectException - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу обработать исключение сервера DisconnectException и завершить работу приложения, когда возникнет исключение сервера DisconnectException

как отловить эту ошибку и остановить приложение?

@KafkaListener(topics = { "${kafka.status-topic}", "${kafka.start-topic}" }, containerFactory = "kafkaListenerContainerFactory")
public void listen(@Payload final String message,
        @Header(KafkaHeaders.RECEIVED_TOPIC) final String topic) {
    log.debug("Received '{}'-message {} from Kafka", topic, message);
    LinkedList<IMessageListener> topicListeners = listeners.get(topic);
    for (final IMessageListener l : topicListeners) {
        // call listeners in a separate thread
        executor.execute(new Runnable() {
            @Override
            public void run() {
                l.messageReceived(topic, message);
            }
        });
    }
}

1 Ответ

0 голосов
/ 12 апреля 2019

Вы можете попробовать перехватить исключение и затем вызвать System.exit(0) внутри блока catch

...