【发布时间】:2015-06-11 23:30:53
【问题描述】:
我有演员MainActor,它初始化并为另外两个子发送消息,并期望得到一个结果。所以MainActor 有两个儿童演员SubActorA 和SubActorB。
基本上我想在子参与者的数据到达时建立一个模型,我可以在更高级别的某个地方访问它(初始化MainActor的类)
例如,我有 100 毫秒的时间来完成这两项任务。如果SubActorA 已在 70 毫秒内返回数据,但SubActorB 需要更多时间,则它将多 30 毫秒,并且所有任务都将被放弃,但我仍然对数据感兴趣并希望访问它,即使其中一些子任务已超时。
问题:
如何将整个执行时间限制为 100 毫秒,以便将来能够访问每个参与者的部分数据?
如何从最高级别的参与者访问数据?我不能一直通过从
UntypedActor扩展并将消息发送到更高级别来一次又一次地将数据推送到更高级别。我试图创建一个WrapperHandler,它将初始化MainActor,但不幸的是得到异常You have to use one of the 'actorOf' factory methods to create a new actor.当然我可以使用actorOf方法并调用.tell()方法来向启动所有工作。但是,如果我不再扩展UntypedActor并且不再覆盖onRecieve()方法,我该如何获得回复?
感谢您的帮助!
【问题讨论】: