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