0
我有List[Future[String]]
,我想等待一段時間,以便收集成功的計算以及重新運行在指定時間段內未完成的期貨的操作。斯卡拉 - 等待所有期貨在期限內完成
在僞代碼將是這樣的:如果你需要執行多次調用外部服務時,其通常的等待時間(低P99 <爲60ms),但有時請求進行處理
val inputData: List[String] = getInputData()
val futures : List[Future[String]] = inputData.map(toLongRunningIOOperation)
val (completedFutures, unfinishedFutures) = Await.ready(futures, 2 seconds)
val rerunedOperations : List[Future[String]] = unfinisedFutures.map(rerun)
這樣的解決方案可能是有用的多超過5秒(由於當前狀態/負載)。在這種情況下,最好重新運行這些請求(即服務的另一個實例)。
可能的解決方案[此處](http://stackoverflow.com/questions/16304471/scala-futures-built-in-timeout) –