gpt4 book ai didi

scala - Scala-ScheduledFuture

转载 作者:行者123 更新时间:2023-12-03 08:50:17 25 4
gpt4 key购买 nike

我正在尝试在Scala中实现预定的将来。我希望它等待特定的时间,然后执行尸体。到目前为止,我尝试了以下简单方法

val d = 5.seconds.fromNow

val f = future {Await.ready(Promise().future, d.timeLeft); 1}

val res = Await.result(f, Duration.Inf)

但是我将来会收到TimeoutExcpetion。这甚至是正确的方法,还是我应该只使用Java中的ScheduledExecutor?

最佳答案

您可以将代码更改为以下内容:

val d = 5.seconds.fromNow
val f = Future {delay(d); 1}
val res = Await.result(f, Duration.Inf)

def delay(dur:Deadline) = {
Try(Await.ready(Promise().future, dur.timeLeft))
}

但是我不建议这样做。这样做,您将在Future中进行阻塞(阻塞以等待将永远不会完成的 Promise),并且我认为不建议在 ExecutionContext中进行阻塞。我可以按照您所说的那样使用java计划的执行程序,也可以按照@ alex23的建议使用Akka。

关于scala - Scala-ScheduledFuture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16359849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com