草庐IT

java - 如何测试 Actor Foo 向新创建的子 Actor Bar 发送消息?

我有一个actorFooActor,它通过Props来实例化几个BarActor并发送BarMessage给它。代码有效,但我很难为它编写测试。添加的限制是我只能在此应用程序中使用Java代码,不能使用Scala代码。经过几次尝试,这似乎是我迄今为止最大的努力:@TestpublicvoidtestJavaTestKit(){newJavaTestKit(system){{JavaTestKitprobe=newJavaTestKit(system);//pretendingthattheprobeisthereceivingBar,byreturningitinthePropsPro

java - Akka Java OneForOneStrategy 示例未编译

我正在尝试将OneForOneStrategy粘贴到一个简单的Hello-Akka程序中,就像基于此文档一样:http://doc.akka.io/docs/akka/2.3.2/java/fault-tolerance.htmlprivatestaticSupervisorStrategystrategy=newOneForOneStrategy(10,Duration.create("1minute"),newFunction(){@OverridepublicSupervisorStrategy.Directiveapply(Throwablet){if(tinstanceofA

java - 我们如何在 Java 中测试 Actors?

到目前为止,我唯一看到的是有人发布了一个测试TypedActor的示例。我认为没有办法通过Junit来测试UntypedActor?Akka文档一天比一天好,但我没有看到提到测试。它真的很明显,我只是错过了什么吗? 最佳答案 要使用JUnit进行测试,您需要使用JUnit提供的工具,有关测试Actor(Java等同于UntypedActor)的文档位于:http://akka.io/docs/akka/snapshot/scala/testing.html 关于java-我们如何在Jav

java - Akka/Java : Handling multiple message types inside a custom actor?

要在Akka(Java绑定(bind))中实现您自己的自定义actor,您可以扩展UntypedActor基类。这需要您定义自己的onReceive(...)方法:@OverridepublicvoidonReceive(Objectmessage){//TODO}手头的问题是确定一种消息处理策略,使参与者能够处理多种类型的消息。一种策略是使用反射/类型。这里的问题是:它迫使我们创建空的“外壳类”,这些类只是为消息提供语义意义(见下文);和它占用了message参数并阻止我们传递任何动态或有意义的内容空壳类的例子:publicclassEmptyShellMessage{}然后在onR

java - Akka Http.get(ActorSystem) 导致 intellij 中的方法调用不明确

intellij在子类指定更具体的返回类型时存在问题。Akka的Http.get(ActorSystem)方法就是这种情况。这个问题已报告给JB,但他们尚未回复。SCL-12302 最佳答案 我找到了解决问题的简单方法。只需从JetBrains安装Scala插件:文件->设置...->插件->安装JetBrains插件...->搜索Scala。重启IDE后故障消失。 关于java-AkkaHttp.get(ActorSystem)导致intellij中的方法调用不明确,我们在StackO

java - Actor 回复非 Actor

我刚刚开始使用AKKA,并且有一个关于非参与者代码如何与参与者代码对话的基本问题。非参与者代码如何调用参与者并获得响应?我试过使用Patterns.ask从非Actor调用Actor,但这不起作用,因为没有Actor可以响应的“发送者”。那我应该怎么做呢? 最佳答案 这应该可以正常工作。当您使用ask时,会创建一个轻量级参与者(我相信由PromiseActorRef表示)来表示发送者,以便可以发回响应以完成>Future通过ask创建。一个小例子来说明这一点。首先是测试Actor:classTestActorextendsUntyp

java - 为什么 akka 的 spring 集成文档只存在于 1.3.1 而不是下一个版本

关于AKKA和Spring的集成方式有一个链接。或者更好地说:“如何在spring环境中使用Akkaactor”。http://doc.akka.io/docs/akka-modules/1.3.1/modules/spring.html实际上有modules文件夹http://doc.akka.io/docs/akka-modules/仅适用于1.3.1版本。Doesitmeanthatthereisnointegrationfordifferentthan`1.3.1`versionwithspring?Oritmeansthatweshouldnotuseit(springint

java - 在未来的代码中使用同步/锁

我们正在使用Scala、Play框架和MongoDB(以ReactiveMongo作为我们的驱动程序)构建一个网络应用程序。应用程序架构是端到端的非阻塞。在我们代码的某些部分,我们需要访问一些非线程安全的库,例如Scala的解析器组合器、Scala的反射等。我们目前将此类调用包含在synchronizedblock中。我有两个问题:将synchronized与future-y代码一起使用时,是否有任何需要注意的问题?从性能和可用性的角度来看,使用锁(例如ReentrantLock)是否比使用synchronized更好? 最佳答案

java - 使用 guice 注入(inject)与 actor 抛出空指针

我在作为akkaactor启动的服务器的字段注入(inject)中遇到空指针异常。附表部分:privateActorRefmyActor=Akka.system().actorOf(newProps(Retreiver.class));@OverridepublicvoidonStart(Applicationapp){log.info("Startingschedular.....!");Akka.system().scheduler().schedule(Duration.create(0,TimeUnit.MILLISECONDS),Duration.create(30,Time

java - Akka:如何找到集群中的当前节点?

如何从Akkaactor中找出集群的节点?即本节点认为当前可访问的节点。谢谢,-丹尼尔 最佳答案 您实际上不需要订阅ClusterDomainEvent或MemberEvent。您可以只访问Cluster扩展的state成员,例如valcluster=akka.cluster.Cluster(context.system)valmembers=cluster.state.members.filter(_.status==MemberStatus.Up) 关于java-Akka:如何找到集