使用akka进行比赛的预定工作

时间:2014-04-21 13:40:55

标签: playframework-2.0 akka

我正在尝试使用akka每分钟执行一个方法。虽然我没有错误,但方法永远不会执行!! 我试图扩展play.api.globalsettings,但我得到了一个错误。所以我实现了它。

这是我的代码:

public class Global implements play.api.GlobalSettings {

    ActorRef tickActor;

    @Override
    public void beforeStart(Application app) {

    }

    @Override
    public void onStart(play.api.Application app) {
        {

        Akka.system().scheduler().schedule(
                Duration.create(0, TimeUnit.MILLISECONDS),
                Duration.create(1, TimeUnit.MINUTES),
                new Runnable() {
                    public void run() {
                        Secured securedObject = new Secured();
                        securedObject.deleteExpiredTokensAndUsers();
                    }
                },
                Akka.system().dispatcher()
        );

    }

任何想法?

2 个答案:

答案 0 :(得分:2)

在java应用程序中,你应该从play.GlobalSettings扩展而不是播放。 api .GlobalSettings

在Play Framework 2中,对于Java应用程序,您应该使用框架的播放包,对于Scala应用程序,您可以使用play.api包。他们可能有很多共同的课程,但它们并不相同。

答案 1 :(得分:0)

谢谢dribba,让它解决了。这是我的代码:

import controllers.Secured;
import play.Application;
import play.GlobalSettings;
import play.libs.Akka;
import scala.concurrent.duration.Duration;
import java.util.concurrent.TimeUnit;

/**
 * Created by Admin on 4/3/14.
 */
public class Global extends GlobalSettings {
    @Override
    public void onStart(Application application) {

        Akka.system().scheduler().schedule(
                Duration.create(0, TimeUnit.SECONDS),
                Duration.create(5, TimeUnit.MINUTES),
                new Runnable() {
                    @Override
                    public void run() {
                        Secured.deleteExpiredTokensAndUsers();
                    }
                },
                Akka.system().dispatcher()

        );
    }
}