gpt4 book ai didi

Scala循环一段时间

转载 作者:行者123 更新时间:2023-12-04 13:09:30 24 4
gpt4 key购买 nike

我正在寻找循环一定时间的可能性。
例如,我想 println("Hi there!") 5 分钟。

我正在使用 Scala 和 Akka。

我正在考虑使用 future ,它将在 5 分钟内完成,同时我会使用 while 循环它并检查它是否未完成。这种方法对我不起作用,因为我的类(class)不是 Actor ,我无法从循环外完成 future 。

任何想法或者可能有针对此类事情的现成解决方案?

当前丑陋的解决方案:

    def now = Calendar.getInstance.getTime.getTime
val ms = durationInMins * 60 * 1000
val finish = now + ms

while (now <= finish) {
println("hi")
}

提前致谢!

最佳答案

@Radian 的解决方案具有潜在危险,因为当您的应用程序多次并发运行此代码时,它最终会阻塞 ExecutorService 中的所有线程。您可以更好地使用 Deadline为了那个原因:

import scala.concurrent.duration._

val deadline = 5.seconds.fromNow

while(deadline.hasTimeLeft) {
// ...
}

关于Scala循环一段时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18358212/

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