Java Play2- Akka的工作

我正在尝试使用akka在java play2中创建一个作业。

我总是得到相同的错误error: cannot find symbol

它指向system.actorOf() Intellij和Eclipse不会给我一个错误信息。

但我找不到这种方法。 我使用了以下导入

 import play.libs.Akka; import akka.actor.ActorSystem; import akka.actor.ActorRef; import akka.actor.UntypedActorFactory; import akka.actor.UntypedActor; import akka.actor.Props; import akka.actor.ActorRefFactory; 

也许文档过时了,他们已经删除了system.actorOf()

 public class Global extends GlobalSettings { ActorRef tickActor = system.actorOf(new Props().withCreator(new UntypedActorFactory() { public UntypedActor create() { return new UntypedActor() { public void onReceive(Object message) { if (message.equals("Log")) { controllers.Application.log(); } else { unhandled(message); } } }; } })); @Override public void onStart(Application app) { Cancellable cancellable = system.scheduler().schedule(Duration.Zero(), Duration.create(10, TimeUnit.SECONDS), tickActor, "Log"); } } 

编辑:

哦…谷歌将我重定向到过时的文档。 现在是Akka.System() ..

  • 谁能给我一个关于如何用up2date代码创建tickActor的例子?

http://www.playframework.org/documentation/2.0.2/JavaAkka

我强烈建议您查看有关演员和调度程序的Akka文档。

您还可以看看这个问题: Play Framework 2.0在服务器启动时安排Akka Actor

解决了它。

顺便说一下文档中有一些拼写错误。

 import java.util.concurrent.TimeUnit; import play.*; import play.mvc.*; import play.mvc.Http.RequestHeader; import static play.mvc.Results.*; import play.libs.Akka; import akka.actor.ActorSystem; import akka.actor.ActorRef; import akka.actor.UntypedActorFactory; import akka.actor.UntypedActor; import akka.actor.Props; import akka.actor.ActorRefFactory; import akka.util.*; public class Global extends GlobalSettings { ActorRef tickActor; @Override public void onStart(Application app) { Logger.info("D"); tickActor = Akka.system().actorOf((new Props().withCreator(new UntypedActorFactory() { public UntypedActor create() { return new UntypedActor() { public void onReceive(Object message) { if (message.equals("Log")) { //Do something // controllers.Application.log(); } else { unhandled(message); } } }; } }))); Akka.system().scheduler().schedule( Duration.create(0, TimeUnit.MILLISECONDS), Duration.create(30, TimeUnit.MINUTES), tickActor, "Log" ); } }