在应用程序启动时,我想安排一个任务每2分钟运行一次(例如,可能每1分钟一次) .

我试过两种方式:
1.使用带有Runnable抽象def调度的Akka调度方法(initialDelay:Duration,frequency:Duration,runnable:Runnable):可取消
(类似于how to integrate SMS & EMAIL Reminders in my play2.0 framework web application.,除了我希望它重复,所以我使用schedule而不是scheduleOnce)
2.使用Akka schedule方法和Actor abstract def schedule(initialDelay:Duration,frequency:Duration,receiver:ActorRef,message:Any):Cancellable(类似于Java Play2- Akka for jobs

这是Akka调度程序API:http://doc.akka.io/api/akka/2.0.3/#akka.actor.Scheduler

在这两种情况下,我都要覆盖Global的onStart方法 . My Global位于根包中:/path/TestApp/app/Global.java

在这两种情况下,当我在 生产环境 模式下运行应用程序时(在开发模式下它根本不起作用...堆栈上有关于此的问题)它运行该函数或者它只发送一次消息 .

如何让它以特定频率重复运行?

如果您已经完成了这项工作或对如何操作有任何想法......请回复 .

后期编辑1:
首先,非常感谢nico_ekito .
这是有效的版本:

类MyUntypedActor.java

import akka.actor.UntypedActor;
import akka.event.Logging;
import akka.event.LoggingAdapter;

public class MyUntypedActor extends UntypedActor {
    LoggingAdapter log = Logging.getLogger(getContext().system(), this);

    public void onReceive(Object message) throws Exception {
        if (message instanceof String) {
            log.info("Received String message: {}", message);       
        }
        else {
            unhandled(message);     
        }
    }
}

类Global.java

import java.util.concurrent.TimeUnit;

import play.Application;
import play.GlobalSettings;
import play.libs.Akka;
import akka.actor.ActorRef;
import akka.actor.Props;
import akka.util.Duration;
public class Global extends GlobalSettings {

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

这个版本适用于akka演员 . 但我也需要使用Akka Scheduler进行WS调用,如下所示:
https://groups.google.com/forum/?fromgroups=#!searchin/play-framework/Akka $ 20Scheduler / play-framework / -WAr7xk3H-o / oLg9ZrwwFDgJ
但是在Java版本中 .

那么......如何在不使用演员的情况下安排以特定频率运行的功能?对于我的其他情况,演员工作,但对于WS调用似乎应该更简单...

后期编辑2:
我工作是因为在同一个onStart方法中我定义了一个actor ...看来Runnable没有"like" actor实例...

案例2,实际上就像nico_ekito的案例仍然无法工作......所以我会避免使用新的Props() . withCreator(new UntypedActorFactory()
因为它显然有问题 .