Muss ich dasselbe Akka ActorSystem wiederverwenden oder kann ich einfach jedes Mal eines erstellen, wenn ich eines benötige?
Akka 2.x benötigt viele Befehle, um auf ein zu verweisenActorSystem
. So erstellen Sie eine Instanz eines SchauspielersMyActor
man könnte sagen:
val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])
Wegen des häufigen Bedarfs an einerActorSystem
: Viele Codebeispiele lassen die Erstellung aus dem Code weg und setzen voraus, dass der Leser weiß, wo einsystem
Variable ist von gekommen.
Wenn Ihr Code Akteure an verschiedenen Stellen produziert, können Sie diesen Code duplizieren und möglicherweise zusätzliche erstellenActorSystem
Instanzen, oder Sie könnten versuchen, das gleiche zu teilenActorSystem
Beispiel durch Bezugnahme auf eine globale oder durch die Weitergabe derActorSystem
um.
Die Akka-Dokumentation bietet eineAllgemeiner Überblick über Akteursysteme unter der Überschrift "Actor Systems", und es gibtDokumentation derActorSystem
Klasse. Beides hilft jedoch nicht viel, um zu erklären, warum sich ein Benutzer von Akka nicht einfach darauf verlassen kann, dass Akka dies unter der Haube erledigt.
Was bedeutet es, dass man dasselbe teilt?ActorSystem
Objekt oder jedes Mal ein neues erstellen?
Was sind die Best Practices hier? HerumreichenActorSystem
die ganze Zeit scheint überraschend hartnäckig.
Einige Beispiele geben dieActorSystem
ein Name:ActorSystem("MySystem")
andere rufen einfach anActorSystem()
. Welchen Unterschied macht das und was, wenn Sie denselben Namen zweimal verwenden?
Tutakka-testkit
erfordern, dass Sie eine gemeinsameActorSystem
mit dem, den du an den weitergibstTestKit
Konstrukteur?