Play Framework 2.0在服务器启动时安排Akka Actor

Hug*_*ves 5 akka playframework-2.0

我有一个Akka actor验证随机数据,并根据该数据的显示时间对其进行一些更改并更新它.目前我正在做的是在控制器中使用此代码:

static ActorRef instance = Akka.system().actorOf(new Props(ValidateAndChangeIt.class));
static {
    Akka.system().scheduler().schedule(
        Duration.Zero(),
        Duration.create(5, TimeUnit.MINUTES),
        instance, "VALIDATE"
    );
}
Run Code Online (Sandbox Code Playgroud)

在控制器中使用它的问题是,有人必须访问由该控制器处理的页面才能启动actor,如果没有发生,则一切都保持暂停状态.

有没有办法在服务器启动时执行此操作?我实际上不知道如果actor生成异常它的行为.它会停止未来的时间表还是会继续?如果没有,是否有任何方法可以让玩家重新安排以防万一发生崩溃或错误?

nde*_*rge 13

要在服务器启动时运行代码,请查看Global对象:将代码从控制器移动到onStart()方法:

public class Global extends GlobalSettings {

  @Override
  public void onStart(Application app) {
    ActorRef instance = Akka.system().actorOf(new Props(ValidateAndChangeIt.class));
    Akka.system().scheduler().schedule(
        Duration.Zero(),
        Duration.create(5, TimeUnit.MINUTES),
        instance, "VALIDATE"
    );
  }  

}
Run Code Online (Sandbox Code Playgroud)