Я добираюсь до Scala, но все еще очень новенький в Akka. Это похоже на довольно простой вопрос, но я не смог найти никакой информации об этом конкретном подходе, который говорит мне, что что-то может быть неправильно с моим мышлением или что есть уже очень стандартный способ сделать это.Корпус DAO-слоя внутри Scala Akka Актер
Все решения, которые я нашел, вращаются вокруг того, что акк Акка совершает вызовы на предварительно построенный сервисный уровень, который будет обрабатывать логику базы данных.
Мой вопрос заключается в том, возможно ли сделать DAO постоянным действующим лицом. Что-то вдоль линий этого:
class UserDAO extends Actor {
val db = actorSystem.actorSelection("/repository/dao")
def receive = {
case GetUserById(id) => sender ! (db ? RunStoredProc(SpGetUserById(id)))
...
}
}
выше, является чисто гипотетическим псевдокодом и все методы (т.е. RunStoredProc
) предназначен только как примеры. Мне более любопытно, насколько разумно за дизайн-решение такой системы. Актеры UserDAO
и DAO
(db
) будут постоянными и безстоящими (хотя DAO
будет удерживать дескриптор соединения с базой данных). То, что я подразумеваю под постоянным, заключается в том, что они не будут создаваться актерами, которые на самом деле их называют.
Я заново изобретаю колесо здесь?