我正在使用 Play 2.0 和 Akka 部署 Web 应用程序。我根据职责分离了参与者,因为这些参与者通常需要在单个 Web 请求期间相互通信。
例如,给定一个管理注册设备的参与者,它必须查询另一个处理相关用户帐户的参与者:
class DeviceActor extends Actor {
val accountActorRef = ...
def receive = {
case GetAccountByDeviceId(id:String) =>
val accountId = getAccountIdAssociatedWithDevice(id)
accountActorRef ? GetAccountById(accountId) map {
case account: Account => sender ! account
}
}
}
从我的控制器调用DeviceActor
时,我总是得到
akka.pattern.AskTimeoutException