ist es in Akka (Scala) möglich, einen Verweis auf ein vorhandenes ActorSystem zu erhalten?Wie bekomme ich einen Verweis auf ein bestehendes ActorSystem in Akka?
Ich arbeite an einer Sprühanwendung mit einem anderen Akteur für DB. Ich erweitere auch Richtlinien, um ein Objekt pro Pfad zu haben. Die Direktiven sind keine eigenen Akteure, sie müssen jedoch Nachrichten an den DBActor übergeben. hier:
class HttpActor extends Actor with HttpService {
val actorRefFactory = context
def receive = runRoute(
IndexService.route ~
HostsService.route
)
}
object HostsService extends Directives{
def route(implicit dm: DetachMagnet2) = {
path("hosts") {
get {
detach() {
**dbActor ! CreateHost**
complete("get me hosts!")
}
} ~
post {
detach() {
entity(as[String]) { payload =>
complete(s"post hosts $payload")
}
}
}
}
}
}
gibt es eine Möglichkeit für HostsService die ActorSystem selbst zu entdecken, damit er die DBActor finden können oder müssen HttpActor es in geben? Letzteres scheint weniger elegant zu sein, da HostService eine Klasse (kein Objekt) werden muss, also kein Singleton mehr.
das tat es, und gut genug für mich. Jetzt muss ich zu meinem nächsten Problem kommen, weshalb alle Pfade beim Neustart aufgerufen werden, aber wenn ich Adressen anrufe, bekomme ich nur den Listener-Thread, der sagt, dass er eine GET-Anfrage an einen Handler schickt, der aussieht wie ein System-Akteur (.../System/IO-TCP/Selectors/...), und nichts anderes passiert ... –