gpt4 book ai didi

scala - 在 Play 中启动 Akka Actor

转载 作者:行者123 更新时间:2023-12-04 14:47:24 25 4
gpt4 key购买 nike

我有戏!应用程序有一些我需要定期运行的任务。我可以使用 Akka 安排任务,但我不确定如何启动调度程序本身。我现在正在做的是拥有一个 Scheduler 对象并从 Global.scala 开始, 像这样

// app/jobs/Scheduler.scala
package jobs

import akka.util.duration._
import play.api.libs.concurrent.Akka
import play.api.Play.current

object Scheduler {
def start() {
Akka.system.scheduler.schedule(0 seconds, 1 minutes) {
SomeTask.start()
}
}
}

进而
// app/Global.scala
import play.api._
import jobs.Scheduler

object Global extends GlobalSettings {
override def onStart(app: Application) {
Scheduler.start()
}
}

问题是,在这种情况下,即使在开发模式和测试期间,任务也会运行,这很快就会变得非常烦人。

Is there a way to schedule jobs with Akka only in production mode?

最佳答案

方法 isProd , isDevisTest Play 对象可能会有所帮助。即使你没有隐含的 Application在范围内,您可以显式传递它

override def onStart(app: Application) {
if (isProd(app)) Scheduler.start()
}

关于scala - 在 Play 中启动 Akka Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740094/

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