私は遊びを持っています!定期的に実行する必要があるいくつかのタスクを含むアプリケーション。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()
}
}
問題は、この場合、タスクが開発モードでもテスト中でも実行され、すぐに非常に面倒になることです。
本番モードでのみ Akka でジョブをスケジュールする方法はありますか?