[英]Akka List of futures - how to wait for list of futures to finish?
新手在這里...
我在域對象集合上有一個非常簡單的可調用對象。 使用期貨時,我所關心的就是真正知道所有期貨何時完成。
因此,我要創建一個期貨集合,遍歷我的域對象,創建一個期貨(帶有可調用對象)並將其添加到期貨集合中。
假設可調用函數返回布爾值,那么我如何確定所有期貨都已完成。
哦! 我想等到這個集合被處理后再處理另一個集合,因為第二個集合過程取決於第一個集合。
任何幫助表示贊賞。
表示不同 :如何等待陣列中的所有項目完成? 我是否需要迭代並等待它們?
ArrayList<Future<Object>> responses = new ArrayList<Future<Object>>();
PS:用JAVA編碼,並且對PartialFunctions等的使用也感到困惑 ,可能是應用過濾器,對集合大小進行計數和比較作為可能的解決方案...
OK-通過執行以下操作解決了該問題:
Await.result(seq, Duration.create("5 seconds"));
哪里
Future<Iterable<Boolean>> seq = Futures.sequence(futures, ec);
futures
是futures
的集合,即ArrayList<Future<Boolean>>
。
以本文中的示例為例:
Future<Iterable<Long>> futuresSequence = sequence(futures);
// block until the futures come back
Iterable<Long> results = futuresSequence.get();
您似乎正在嘗試編寫期貨,但是您為正確執行嵌套錯誤的方式嵌套了收藏和期貨。 嘗試改用Iterable
的Future
,然后在此future上調用get
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.