gpt4 book ai didi

java - 等待 kafkaTemplate 待处理的 future

转载 作者:行者123 更新时间:2023-12-01 17:05:25 24 4
gpt4 key购买 nike

我正在执行一个异步操作,该操作在循环中返回一个 future 对象(比如 10 条消息)。据我了解,当 Future 完成其任务时,回调方法会自动触发并执行。

假设我的第七个 future 正处于等待阶段。我怎样才能异常(exception)地完成这个 future ?

处理这种情况的最佳方法是什么。

List<ListenableFuture<SendResult<String, String>>> cf = new ArrayList<ListenableFuture<SendResult<String, String>>>();

future = kafkaTemplate.send(topicName, message);
cf.add(future);

i++;

future.addCallback(new ListenableFutureCallback<SendResult<String, String>>() {

@Override
public void onSuccess(SendResult<String, String> result) {
syso("sent success");
}

@Override
public void onFailure(Throwable ex) {
System.out.println(" sending failed");
}
});

最佳答案

你为什么要这么做?

如果出现异常,kafka-clients将调用模板的回调并抛出异常,模板将异常完成future。

如果您出于某种原因确实需要这样做(但我想了解原因),您可以将其转换为 SettableListenerFuture

关于java - 等待 kafkaTemplate 待处理的 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61468317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com