Akka 2.x では、 を参照するために多くのコマンドが必要ActorSystem
です。したがって、アクターのインスタンスを作成するには、次のようにMyActor
言えます。
val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])
:が頻繁に必要になるため、ActorSystem
多くのコード例ではコードからの作成を省略し、system
変数がどこから来たかを読者が知っていると想定しています。
コードが別の場所でアクターを生成する場合、このコードを複製して追加のインスタンスを作成するか、何らかのグローバルを参照するか、または渡してActorSystem
同じインスタンスを共有しようとすることができます。ActorSystem
ActorSystem
Akka のドキュメントでは、 「アクター システム」という見出しの下にアクター システムの概要が説明されており、クラスのドキュメントがありますActorSystem
。しかし、これらのいずれも、Akka のユーザーが Akka だけに頼って内部処理を行うことができない理由を説明するのにあまり役立ちません。
質問
同じオブジェクトを共有し
ActorSystem
たり、毎回新しいオブジェクトを作成したりすることの意味は何ですか?ここでのベストプラクティスは何ですか?
ActorSystem
いつも通り過ぎるのは、意外と手ごわいようです。ActorSystem
に名前を付ける例もあれば、ActorSystem("MySystem")
単に と呼ぶ例もありますActorSystem()
。これによりどのような違いが生じますか? 同じ名前を 2 回使用するとどうなりますか?コンストラクターに渡すものと
akka-testkit
共通のものを共有する必要がありますか?ActorSystem
TestKit