【问题标题】:How can I test @onFailure method?如何测试@onFailure 方法?
【发布时间】:2021-11-12 22:01:16
【问题描述】:

我怎样才能转到“@Override public void onFailure(Throwable ex) { ... }”?

它总是“@Override public void onSuccess(SendResult result) {...}。

我想打印 log.error("无法发送消息=["+kafkaPgResponseDto.toString()+"] 由于:" + ex.getMessage());

请帮忙...

ListenableFuture<SendResult<String, KafkaPgResponseDto>> future = pgResponseKafkaTemplate.send(kurlyTopicNamePgResponse, kafkaPgResponseDto);
        future.addCallback(new ListenableFutureCallback<SendResult<String, KafkaPgResponseDto>>(){
            @Override
            public void onSuccess(SendResult<String, KafkaPgResponseDto> result) {
                KafkaPgResponseDto kafkaPgResponseDto = result.getProducerRecord().value();
                log.debug("Send message=["+kafkaPgResponseDto.toString()+"] with offset=["+result.getRecordMetadata().offset()+"]");
            }
            @Override
            public void onFailure(Throwable ex) {
                log.error("Unable to send message=["+kafkaPgResponseDto.toString()+"] due to : "+ex.getMessage());
                kafkaTransactionService.failedProcessingKafkaHistorySave(orderNo, kurlyTopicNamePgResponse, gson.toJson(payload), ex.toString());
            }
        });

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: apache-kafka spring-kafka addcallback


【解决方案1】:

我相信在真正的 Kafka 中没有必要测试你的功能。考虑使用MockProducer 注入KafkaTemplate 并模拟onFailure() 案例的错误:https://www.baeldung.com/kafka-mockproducer

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2019-06-04
    • 2019-12-29
    • 2016-11-02
    • 2017-05-06
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多