jest to możliwe w Akka (scala), aby uzyskać odniesienie do istniejącego ActorSystem?Jak uzyskać odniesienie do istniejącego ActorSystem w Akka?
Pracuję nad aplikacją Spray z innym Aktorem dla DB. Rozszerzam także dyrektywy, by mieć obiekt na ścieżkę. dyrektywy nie są aktorami same w sobie, ale muszą przekazywać wiadomości do DBActor. tutaj:
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")
}
}
}
}
}
}
czy istnieje sposób na HostsService odkryć samego ActorSystem aby mógł znaleźć DBActor lub musi HttpActor przekazać go w? ten ostatni wydaje się mniej elegancki, ponieważ HostsService będzie musiał stać się klasą (nie obiektem), więc nie będzie już singletonem.
który to zrobił i wystarczająco dobry dla mnie. Teraz muszę przejść do następnego problemu, dlatego wszystkie ścieżki wydają się być wywoływane przy ponownym uruchomieniu, ale kiedy wywołuję adresy, wszystko, co otrzymuję, to wątek odsłuchiwania mówiąc, że wysyła żądanie GET do programu obsługi, który wygląda jak aktor systemowy (.../system/IO-TCP/selektory/...) i nic więcej się nie dzieje ... –