16

Play 1.0 中,我们可以定义一些将在后台执行的作业:

@OnApplicatonStart
@Every("1h")
public class DataJob extends Job {
    public void doJob() {
       // ...
    }
}

但我在 Play 2.0 中找不到它。我错过了什么吗?

4

3 回答 3

6

您可以在 akka 中使用调度程序服务。

http://doc.akka.io/docs/akka/2.0/java/scheduler.html

http://doc.akka.io/docs/akka/2.0/scala/scheduler.html

基本上,您创建一个执行您的逻辑的参与者,如果它接收到特定消息。

于 2012-02-18T17:28:42.367 回答
6

对于实际工作部分,这似乎是 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() 
            {
                ....
            }
        }
    );
于 2012-10-01T07:30:29.973 回答
1

修复了JonasAnso发布的原始接受答案中的链接

要获得 OnApplicationStart 的功能,您可以使用 Global onStart

在这里,您可以使用 Akka 安排您的演员。

希望能帮助到你。

于 2015-10-06T14:40:38.807 回答