我已经演员MainActor
初始化和发送两个其他子的消息,并期待返回结果。所以MainActor
有两个小孩演员SubActorA
和SubActorB
。Akka开始和访问演员返回的数据
基本上我想建立一个模型时,从子参与者的数据已经到达我将能够在某个地方访问它在更高的层次(类初始化MainActor
)
比如我有两个任务100毫秒。如果SubActorA
已经在70毫秒内返回了数据,但SubActorB
需要更多时间,那么它将会有30毫秒多的时间,毕竟任务将被放弃,但我仍然对数据感兴趣,并希望即使某些子任务具有访问权限时间喝。
问题:
我如何限制在100 ms整个执行,以便在将来,我将能够从每个演员部分访问数据吗?
如何从最高级别的角色访问数据?我无法一直将数据从
UntypedActor
延伸到更高级别,并将消息发送到更高级别。我试图创建一个WrapperHandler
,它将初始化MainActor
,但不幸的是得到异常You have to use one of the 'actorOf' factory methods to create a new actor.
当然,我可以使用actorOf
方法来执行此操作,并调用.tell()
方法向启动所有作业的actor发送消息。但是,如果我不扩展UntypedActor
而不是覆盖onRecieve()
方法,我如何获得回复?
感谢您的帮助!
非常感谢!我的MainActor应该回复谁?我试着回复'getContext()。parent()。tell(message,getSelf());'但它失败并且超时。你知道可能的原因吗? –
你必须回复发件人。 – Ryan
但是由于'MainActor'在我理解的发件人引用中从'SubActorA'收到当前消息(它想要在演员之外转发)会产生一个无限循环? –