加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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推荐.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读