è possibile in Akka (scala) ottenere un riferimento ad un ActorSystem esistente?Come ottenere un riferimento ad un ActorSystem esistente in Akka?
Sto lavorando a un'applicazione Spray con un altro attore per DB. Sto anche estendendo le direttive per avere un oggetto per percorso. le direttive non sono attori da sole, ma devono passare messaggi al DBActor. qui:
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")
}
}
}
}
}
}
c'è un modo per HostsService per scoprire l'ActorSystem in sé, così da poter trovare la DBActor, o deve passare HttpActor altrove? quest'ultimo sembra meno elegante, in quanto HostsService dovrà diventare una classe (non un oggetto), quindi non più un singleton.
che ha funzionato, e abbastanza buono per me. ora ho bisogno di arrivare al mio prossimo problema, che è il motivo per cui tutti i percorsi sembrano essere richiamati al riavvio, ma quando chiamo gli indirizzi, tutto quello che ottengo è il thread del listener che dice che sta inviando la richiesta GET a un gestore che sembra come un attore di sistema (.../system/IO-TCP/selettori/...), e non succede nient'altro ... –