java play2-akka for jobs

c7rzv4ha  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(405)

我试图用akka在javaplay2中创建一个job。
我总是犯同样的错误 error: cannot find symbol 它指向 system.actorOf() intellij和eclipse没有给我错误消息。
但是我找不到这个方法。我使用了以下导入

  1. import play.libs.Akka;
  2. import akka.actor.ActorSystem;
  3. import akka.actor.ActorRef;
  4. import akka.actor.UntypedActorFactory;
  5. import akka.actor.UntypedActor;
  6. import akka.actor.Props;
  7. import akka.actor.ActorRefFactory;

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

  1. public class Global extends GlobalSettings {
  2. ActorRef tickActor = system.actorOf(new Props().withCreator(new UntypedActorFactory() {
  3. public UntypedActor create() {
  4. return new UntypedActor() {
  5. public void onReceive(Object message) {
  6. if (message.equals("Log")) {
  7. controllers.Application.log();
  8. } else {
  9. unhandled(message);
  10. }
  11. }
  12. };
  13. }
  14. }));
  15. @Override
  16. public void onStart(Application app) {
  17. Cancellable cancellable = system.scheduler().schedule(Duration.Zero(), Duration.create(10, TimeUnit.SECONDS),
  18. tickActor, "Log");
  19. }
  20. }

编辑:
.
哦。。。谷歌把我转到了过时的文档。是的 Akka.System() 现在。。
有人能给我举个例子,说明如何用代码创建tickactor吗?
http://www.playframework.org/documentation/2.0.2/javaakka

zmeyuzjn

zmeyuzjn1#

解决了。
顺便说一句,文档中有一些拼写错误。

  1. import java.util.concurrent.TimeUnit;
  2. import play.*;
  3. import play.mvc.*;
  4. import play.mvc.Http.RequestHeader;
  5. import static play.mvc.Results.*;
  6. import play.libs.Akka;
  7. import akka.actor.ActorSystem;
  8. import akka.actor.ActorRef;
  9. import akka.actor.UntypedActorFactory;
  10. import akka.actor.UntypedActor;
  11. import akka.actor.Props;
  12. import akka.actor.ActorRefFactory;
  13. import akka.util.*;
  14. public class Global extends GlobalSettings {
  15. ActorRef tickActor;
  16. @Override
  17. public void onStart(Application app) {
  18. Logger.info("D");
  19. tickActor = Akka.system().actorOf((new Props().withCreator(new UntypedActorFactory() {
  20. public UntypedActor create() {
  21. return new UntypedActor() {
  22. public void onReceive(Object message) {
  23. if (message.equals("Log")) {
  24. //Do something
  25. // controllers.Application.log();
  26. } else {
  27. unhandled(message);
  28. }
  29. }
  30. };
  31. }
  32. })));
  33. Akka.system().scheduler().schedule(
  34. Duration.create(0, TimeUnit.MILLISECONDS),
  35. Duration.create(30, TimeUnit.MINUTES),
  36. tickActor,
  37. "Log"
  38. );
  39. }
  40. }
展开查看全部
bhmjp9jg

bhmjp9jg2#

我强烈建议你看看关于演员和调度员的akka文档。
您还可以看看这个问题:playframework2.0在服务器启动时安排一个akka演员

相关问题