【发布时间】:2014-12-24 15:39:07
【问题描述】:
我正在使用带有 scala 的播放框架。我还使用 RedisScala 驱动程序(这个 https://github.com/etaty/rediscala )与 Redis 进行通信。如果 Redis 不包含数据,那么我的应用程序正在 MongoDB 中查找数据。 当 Redis 失败或由于某种原因不可用时,应用程序等待响应的时间过长。在这种情况下如何实施故障转移策略。如果请求时间过长,我想停止请求 Redis。并在 Redis 重新上线后开始使用它。 为了澄清这个问题,我的代码现在如下所示
private def getUserInfo(userName: String): Future[Option[UserInfo]] = {
CacheRepository.getBaseUserInfo(userName) flatMap{
case Some(userInfo) =>
Logger.trace(s"AuthenticatedAction.getUserInfo($userName). User has been found in cache")
Future.successful(Some(userInfo))
case None =>
getUserFromMongo(userName)
}
}
【问题讨论】:
标签: scala playframework redis