Ho un gioco! applicazione con alcune attività che ho bisogno di eseguire periodicamente. Posso pianificare le attività usando Akka, ma non sono sicuro di come avviare lo scheduler stesso. Quello che sto facendo in questo momento sta avendo un oggetto di pianificazione e partendo da Global.scala
, come questoInizio attori Akka in Play
// 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()
}
}
}
e poi
// app/Global.scala
import play.api._
import jobs.Scheduler
object Global extends GlobalSettings {
override def onStart(app: Application) {
Scheduler.start()
}
}
Il problema è che in questo, l'attività viene eseguita anche in modalità di sviluppo e durante i test, diventa presto molto fastidioso.
C'è un modo per pianificare i lavori con Akka solo in modalità di produzione?
ci sono metodi 'isProd',' 'isDev' e isTest' su [Play] (http: //www.playframework. org/documentation/api/2.1-RC1/scala/index.html # play.api.Play $) oggetto per scoprire la modalità attualmente in esecuzione. – 4e6
Grazie. Mentre i metodi che menzioni dipendono dall'avere un'app implicita in scope - che non è il caso, dal momento che l'argomento di 'onStart' non è implicito - seguendo il tuo link, in realtà ho scoperto che si può semplicemente controllare app.mode, che fa lo stesso. Se vuoi metterlo in una risposta, sarò lieto di accettarlo. – Andrea