And*_*rea 6 scala akka playframework-2.0
我玩了!我需要定期运行某些任务的应用程序.我可以使用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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后
// app/Global.scala
import play.api._
import jobs.Scheduler
object Global extends GlobalSettings {
override def onStart(app: Application) {
Scheduler.start()
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于,即使在开发模式和测试期间,任务也会运行,这很快就会非常烦人.
有没有办法只在生产模式下安排Akka的工作?
方法isProd,isDev以及isTest对Play物体可能是有益的.即使您没有隐式Application范围,也可以显式传递它
override def onStart(app: Application) {
if (isProd(app)) Scheduler.start()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1667 次 |
| 最近记录: |