【问题标题】:Wait for List of CompletableFuture [duplicate]等待 CompletableFuture 列表 [重复]
【发布时间】:2020-08-12 06:40:33
【问题描述】:

如何等待 15 分钟的期货列表(如果未完成)而不是每个未来? 下面的代码将等待每个未来 15 分钟。但这不是我想要的

for (CompleteableFuture<String> m : futureList) {
        m.get(15, TimeUnit.MINUTES) ;
}

Syso( " Send email") ;

【问题讨论】:

  • 也许您可以跟踪经过了多少时间,只在后续迭代中等待剩余时间?
  • 如果您可以选择切换到 Guava,那么您可以使用 com.google.common.util.concurrent.Futures#allAsList(ListenableFuture...)
  • 是的,实际上我得到了 List>> myKafkaFutures 但是 allAsList 没有传递时间的选项

标签: java asynchronous future


【解决方案1】:

像这样使用CompletableFuture.allOf()

       CompletableFuture.allOf(futureList).get(15, TimeUnit.MINUTES);

【讨论】:

  • 请注意,allOf() 需要一个数组。如果futureListListCollection,则需要对其进行转换。
猜你喜欢
  • 2021-07-01
  • 1970-01-01
  • 2018-11-08
  • 2023-01-23
  • 2021-06-02
  • 1970-01-01
  • 2016-02-28
  • 2015-05-11
  • 1970-01-01
相关资源
最近更新 更多