Scala中的预定执行程序

Mic*_*ael 13 scala scheduled-tasks

在Java中,我可以使用Scheduled Executor来安排在给定延迟后运行的任务.我可以在Scala中使用它,但我想知道是否有Scala API.

是否有任何Scala API(而不是Scheduled ExecutorJava)来安排任务?

Mar*_*ila 29

Akka与调度程序类似:

http://doc.akka.io/api/akka/2.1.4/#akka.actor.Scheduler

你可以从actor系统中获得一个:

val actorSystem = ActorSystem()
val scheduler = actorSystem.scheduler
val task = new Runnable { def run() { log.info("Hello") } }
implicit val executor = actorSystem.dispatcher

scheduler.schedule(
  initialDelay = Duration(5, TimeUnit.SECONDS),
  interval = Duration(10, TimeUnit.SECONDS),
  runnable = task)
Run Code Online (Sandbox Code Playgroud)

如果您正在使用Akka或基于它的东西,比如Play,那将是最佳选择.

  • 人们为什么认为Scala == Akka? (16认同)
  • 哦,谢谢你写的。我是 Scala 的新手,每次我用 Google 搜索有关 Scala 的任何内容,我都会找到与 Akka 相关的答案。你的评论对我来说很清楚。 (2认同)
  • Akka就像病毒一样。 (2认同)

Mik*_*keB 5

我也一直在寻找用于计划执行的scala api。

Java的ScheduledExecutor:

  • 使用线程池来运行调度程序和操作超时,因此不需要每个超时的线程
  • 不需要阿卡

我为单个任务计划编写了一个scala包装器。见要点:https : //gist.github.com/platy/8f0e634c64d9fb54559c