Scala актеры и постоянство контекста - PullRequest
3 голосов
/ 11 октября 2009

Можно ли внедрить постоянный контекст в актера scala каждый раз, когда он действует? У меня есть двойное Java / Scala Spring-приложение, и я использую Spring-аннотации для разметки моих Java-сервисов и методов как транзакционных. Я хотел бы использовать подобную функциональность в моих актерах Scala. То есть субъект должен работать в рамках одной транзакции каждый раз, когда он отвечает на сообщение. Кто-нибудь пробовал нечто подобное или есть примеры такого рода вещей?

1 Ответ

7 голосов
/ 12 октября 2009

Почему бы не инкапсулировать постоянный доступ через Dao trait, который вводится в сам субъект. Таким образом, у вас может быть постоянный субъект, который отделен от самого постоянного механизма:

class DaoActor(val dao: Dao) extends Actor {

   def act() = {
     loop {
       react {
         case SaveTrade(trade) => dao.save(trade)
         case ReadTrades(date) => dao.lookup(date)           }
     }
   }
}

Более того, ваш Dao может быть закодирован в Java, так что вы можете добавить туда аннотацию @Transactional.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...