私は、主要なタスク同期アッカの俳優のベストプラクティス
俳優Aを完了する必要があり、次の要件
を持っています。メッセージは、それがために俳優のBに渡し「特別」である場合には、主要なタスクを実行します処理し、タスク アクターBを終了:主要なタスクのために特別な論理タスクを実行し、AとBは一緒にこの
実装
public static class ActorA extends UntypedActor {
public void onReceive(Object message) {
if (message instanceof Work) {
// if message is special
ActorRef actorB = this.getContext().actorOf(Props.create(ActorB.class,));
actorB.tell(new specialTask(message.property), getSelf());
} else {
unhandled(message);
}
}
}
完了
俳優のB
public static class ActorB extends UntypedActor {
public void onReceive(Object message) {
if (message instanceof specialTask) {
//do special task using the message that does not change the state of the message
} else {
unhandled(message);
}
}
}
ActorAは俳優Bsがタスクで完了を依存しません。しかし、完成したばかりの俳優BからAに渡すメッセージがなければならないかどうかはわかりません。これは正しいアプローチですか?
作業コードはcodeview.stackexchange.comに移動する必要があります – GhostCat
ありがとう、http://codereview.stackexchange.com/questions/150871/synchronised-akka-actor-best-practiceに投稿しました –
質問はcoderview.stackexchangeで受け付けられません。 comので、私はここで試し続けます。ありがとう –