我对Akka比较新,有一个(希望很简单)的问题。我有一个需要重复执行某个小子任务的Actor;也就是说,每次这个Actor收到一条消息,它都需要执行N个子任务。我已经将这个子任务分配给了一个子Actor。我的问题是:对于这些子任务,我应该为每个子任务创建一个新的子Actor实例呢?还是只需生成单个子Actor,然后向其发送N个消息?在这种情况下,最佳实践是什么?
为了更好地说明我的问题,以下是两个简化的示例(使用Java编写——但希望对Scala的人来说也足够简单!):
第一个Actor类在构造时创建一个单个子Actor,并向该单个子Actor发送很多消息。
现在,将其与以下演员进行比较,该演员为需要发送的每个消息生成一个新的子演员。
为了更好地说明我的问题,以下是两个简化的示例(使用Java编写——但希望对Scala的人来说也足够简单!):
第一个Actor类在构造时创建一个单个子Actor,并向该单个子Actor发送很多消息。
public class ParentActor extends UntypedActor {
private final ActorRef childActor;
public ParentActor() {
this.childActor = getContext().actorOf(Props.create(childActor.class));
}
@Override
public void onReceive(Object msg) {
for (int i=0; i<1000; i++) {
this.childActor.tell("Some message", getSelf());
}
}
}
现在,将其与以下演员进行比较,该演员为需要发送的每个消息生成一个新的子演员。
public class ParentActor extends UntypedActor {
@Override
public void onReceive(Object msg) {
for (int i=0; i<1000; i++) {
final ActorRef childActor = getContext().actorOf(Props.create(childActor.class));
childActor.tell("Some message", getSelf());
}
}
}
谢谢!