当前位置: 首页 > 知识库问答 >
问题:

如何确定akka参与者是否完成(从非参与者代码)

方高丽
2023-03-14

我很难弄清楚我如何知道我的演员何时从非演员代码中完成。

尝试使用akka演员进行并行执行,这似乎真的很好,但我需要知道何时所有人都完成了。

我添加了一个监督者演员,产生演员来做工作,从监督者/父演员,我可以观看孩子的终止消息。

我需要从akka actor系统之外的常规java代码中得到帮助,以确定我的监督actor是否完成。

这是否可能,请提供指针。

谢谢哈瑞

共有1个答案

桓兴腾
2023-03-14

鉴于您只通过消息与参与者交互,您应该向主管询问其状态。使用ask模式,您可以向参与者发送一条消息A,方法返回一个带有响应的Future。在参与者端,您必须处理消息A,用实际状态回复发送者。

 类似资料:
  • 正如我在akka规范中所读到的,它在actors中支持mdc。例如,我可以将unic信息放在mdc中,然后在actor中使用它。但是期货呢?akka是否提供了任何保证,即在actor中启动的未来将具有相同的mdc?另外,发送给其他参与者的消息呢?默认情况下是否复制了MDC? 注意事项 对我来说,这看起来很奇怪,我只能在一个参与者代码中使用MDC。

  • 我的应用程序使用一个主管akka actor,在内部初始化其他参与者(child)。然而,由于它是异步进行的,所以我在尝试使用Akka TestKit编写测试时遇到了问题。 例如,当试图测试一个系统是如何从另一个系统终止通过发送消息到一个子演员的主管,我创建一个新的演员系统,然后与actorOf一个主管,它接收一个配置(用于在里面创建子演员主管),像这样: 然后,如果我尝试使用actorSelec

  • ``` 所以,我的问题是--有没有一种干净的方法来结构和重构路由,而不是将它们集中在一个大的路由定义中?我也许可以创建一个参与者(路由器)的层次结构,主路由定义只是将其委托给路由器,随着我们深入参与者层次结构,我们会逐步添加更多的细节。但是否有一两种普遍接受的模式来组织路线呢?

  • 我遇到了一个场景,我需要检查特定的参与者是否存在,这可以通过ActorSystem完成。actorSelection方法,指定参与者路径 但是,当本地节点上存在此类参与者时,此方法可以正常工作。若actor系统由多个节点组成,并且actor存在于另一个节点上,则该方法告诉我们actor不存在。若我给出指定远程参与者系统的字符串,那个么这个方法可以工作。但在actorSelection方法中指定远程

  • 我正在尝试在Scala上实现AKKA http和一些Actor。我用Akka创建了一个web应用程序。但我在一个或两个不同的路由上有这个错误/16。(显然是随机的): 服务器无法及时响应您的请求。请稍后再试! 你能给我解释一下为什么和怎么修吗?我对Akka真的是新手。 主类:

  • 我正在尝试使用类型化执行器版本2.6.3和akka http版本10.1.11,而在非类型化执行器中都运行良好,现在我得到了编译错误