次のようなものがあるとします。
while (true) {
val job = Future { doSomething(); 1 }
val timeout = Future { Thread.sleep(1000); 2 }
val both = for (j <- job; t <- timeout) {
println("Done")
}
Await.result(both)
}
rx-java/scala を使用したこの慣用的な解決策は何ですか?
更新: コードから明らかでない場合は、もう少し明確にします。
ts nとten nをそれぞれジョブの開始と終了のタイムスタンプとします。doSomething()
次に、次のジョブをts n+1 = max (ten n , ts n + 1 second )にスケジュールする必要があります。