我正在使用JavaStkit编写一个Akka JUnit测试,并试图找出我做错了什么。
ActorSystem akkaSystem = ActorSystem.create("myAkkaSystem");
Props executiveProps = Props.create(ExecutiveSupervisor.class);
TestActorRef<ExecutiveSupervisor> executiveSupervisorTestActorRef = TestActorRef.create(akkaSystem, executiveProps, "testExecutiveSupervisor");
new JavaTestKit(akkaSystem) {{
final Inbox inbox = Inbox.create(akkaSystem);
inbox.send(executiveSupervisorTestActorRef, new Object());
ResultAndData result = (Object)inbox.receive(Duration.create(2, TimeUnit.SECONDS));
}};
执行通过演员中的代码非常愉快。在worker中的某一点上,我希望它在ActorSystem级别将传递的相同对象(ResultAndData)返回到JUnit的收件箱。即。我希望worker将传递给它的对象返回给其父级。
但是,就像它试图返回下面的行一样:
log.info("SUCCESS!!!!!!!!!!!");
getContext().parent().tell(result, getSelf()); //FAILS HERE
此时我得到以下消息:
expectMsgEquals(duration("2 seconds"), result);
谢谢大家,任何帮助都很好。
您应该这样返回消息:
sender().tell(result, getSelf());
现在您正在将消息发送给您的演员的父级,因为您的演员是顶级演员,这将不会成功。您的参与者的父级不是收件箱,因此您尝试的内容无法成功。父角色是在上下文中创建子角色的角色,当您通过actorSystem上的TestActorRef创建角色时,它将是一个顶级角色,将default/user角色作为父角色,您不能使用它来接收消息。我怀疑您真正想要的是响应消息,因此您应该将消息发送给当前消息的发送者,您可以使用sender()
检索该消息。
接口说明 轻推轻应用/订阅号支持发送文本、图片、文本卡片、图文、key-value、文件、待办等消息类型。本接口针对各种消息类型和发送的对象(单发、群发以及给部分人发送)进行了定义。 注:openid是用户关注某个轻应用/订阅号后生成的唯一id,单发和给部分人发送消息必须携带此参数,可以通过如下接口来获取: 根据qt_code获取用户基本信息 获取使用者列表 通过userId获取openid 消息
主动发送消息 use EasyWeChat\Kernel\Messages\TextCard; // 获取 Messenger 实例 $messenger = $app->messenger; // 准备消息 $message = new TextCard([ 'title' => '你的请假单审批通过', 'description' => '单号:1928373, ...
向已经创建连接凭据的设备发送消息数据。 请求方式: |4|2|3|message|\r 参数 message 发送的消息内容 返回值: "|4|2|3|1|\r" 发送成功 "|4|2|3|2|\r" 发送失败 Arduino样例: softSerial.print("|4|2|3|DFRobot|\r");
如何保持一个连续的流,以“反应”新的丢弃的文件?(或其他事件,如HTTP GET请求或类似的事件)... 例如,如果我不返回PublisherBuilder的实例,而是返回一个整数,那么我的kafka主题将由一个非常巨大的整数值流填充。这就是为什么示例在发送消息时使用一些间隔... 我应该使用一些CompletationStage或CompletableFuture吗?RXJava2?使用哪个li
我正在处理一个套接字 IO 应用程序,该应用程序使用来自 ActiveMQ 队列的消息。我正在为节点JS使用踩踏库 在大多数情况下,它工作正常,但我需要能够重新发送未确认的消息。跳过 amq.ack(消息)的消息不会被重新尝试并显示为正在等待 ActiveMQ Web 控制台。有没有办法让我重新发送它们?
问题内容: 我已经编写了一个函数,希望在提交表单之前显示确认消息。我应该如何添加我的条件。下面是我的代码。 问题答案: 解决方案是使用ajax属性。 beforeSend是发送之前的请求前回调函数.beforeSend函数中返回false将取消请求。 AJAX