Scala – ScheduledFuture
发布时间:2020-12-16 09:26:12 所属栏目:安全 来源:网络整理
导读:我正在尝试在Scala中实现预定的未来.我希望它等待特定时间然后执行正文.到目前为止,我尝试了以下简单方法 val d = 5.seconds.fromNowval f = future {Await.ready(Promise().future,d.timeLeft); 1}val res = Await.result(f,Duration.Inf) 但我正在接受未来
我正在尝试在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预定执行程序,或者你可以考虑使用Akka作为@ alex23推荐. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |