Dov'è il supporto di lavoro in Play 2.0?
-
27-10-2019 - |
Domanda
In Giocare a 1.0, possiamo definire alcuni lavori che verranno eseguiti in background:
@OnApplicatonStart
@Every("1h")
public class DataJob extends Job {
public void doJob() {
// ...
}
}
Ma non riesco a trovarlo in Play 2.0. Mi manca qualcosa?
Soluzione 3
Risolto i collegamenti nella risposta originale accettata pubblicata da Jonasanso
Per ottenere la funzionalità di OnApplicationStart è possibile utilizzare Global OnStart
- https://www.playframework.com/documentation/2.4.x/api/scala/index.html#play.api.globalsettings
- https://www.playframework.com/documentation/2.4.x/api/java/play/globalsettings.html
Qui puoi programmare i tuoi attori usando Akka.
- https://www.playframework.com/documentation/2.4.x/scalaakka
- https://www.playframework.com/documentation/2.4.x/javaakka
Spero che sia d'aiuto.
Altri suggerimenti
È possibile utilizzare il servizio Scheduler in Akka.
http://doc.akka.io/docs/akka/2.0/java/scheduler.html
http://doc.akka.io/docs/akka/2.0/scala/scheduler.html
Fondamentalmente crei un attore che esegue la tua logica se riceve un determinato messaggio.
Per la parte di lavoro acutale questo sembra essere il modo in Java,
Akka.system().scheduler().schedule(
Duration.create(0, MILLISECONDS), // initial delay
Duration.create(5, MINUTES), // run job every 5 minutes
new Runnable()
{
public void run()
{
....
}
}
);