Where is the job support in Play 2.0?
-
27-10-2019 - |
题
In Play 1.0, we can define some jobs which will be executed in the background:
@OnApplicatonStart
@Every("1h")
public class DataJob extends Job {
public void doJob() {
// ...
}
}
But I can't find it in Play 2.0. Do I miss something?
解决方案 3
Fixed the links in original accepted answer which posted by JonasAnso
To obtain the functionality of OnApplicationStart you can use 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
Here you can schedule your actors using Akka.
- https://www.playframework.com/documentation/2.4.x/ScalaAkka
- https://www.playframework.com/documentation/2.4.x/JavaAkka
Hope it helps.
其他提示
You could use the scheduler service in akka.
http://doc.akka.io/docs/akka/2.0/java/scheduler.html
http://doc.akka.io/docs/akka/2.0/scala/scheduler.html
Basically you create an actor that executes your logic if it receives a certain message.
For the acutal job part this seems to be the way 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()
{
....
}
}
);
不隶属于 StackOverflow