假设我们有这样的东西:
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和te n分别为作业开始和结束的时间戳doSomething()
。
然后下一个作业应该安排在ts n+1 = max (te n , ts n + 1 秒)。