Возможно ли в Akka (scala) получить ссылку на существующую систему ActorSystem?Как получить ссылку на существующую систему ActorSystem в Акке?
Я работаю над применением спрей с другим актером для БД. Я также расширяю Директивы, чтобы иметь объект на каждый путь. директивы сами по себе не являются субъектами, но они должны передавать сообщения DBActor. здесь:
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")
}
}
}
}
}
}
есть способ для HostsService, чтобы обнаружить сам ActorSystem, чтобы он мог найти DBActor, или должен HttpActor передать его в? последний кажется менее изящным, так как HostsService должен стать классом (а не объектом), поэтому больше не синглтон.
, который сделал это, и достаточно для меня. Теперь мне нужно перейти к следующей проблеме, поэтому все пути, кажется, вызываются при повторном запуске, но когда я вызываю адреса, все, что я получаю, это поток слушателя, говорящий, что он отправляет запрос GET обработчику, который выглядит как системный актер (.../system/IO-TCP/selectors/...), и ничего больше не происходит ... –