【发布时间】:2014-05-03 19:22:23
【问题描述】:
如果我在一个 Action 中发出 3 种不同类型的请求,如果它们都有自己的执行上下文,我应该如何处理,这种场景有最佳实践吗?
在一个动作中我需要做以下事情:
- 使用 slick 对 mysql 进行 db 调用
- 进行 redis 调用
- 进行内存缓存调用
假设我的操作看起来像这样,我有 3 个不同的执行上下文,请纠正我的错误:
def userProfile = Action.async {
Future {
// db
}(Contexts.myDbEC)
Future {
// redis calls
}(Contexts.myRedisEC)
Future {
// memcache calls
}(Contexts.myMemcacheEC)
}
- 在这种情况下我必须使用 Action.asynch 是否正确?这是为什么呢?
- 如果我需要一个执行上下文与另一个执行上下文的结果,我将如何处理?
- 当 Future 代码在块中执行时,我将如何组合结果,我是否必须在未来调用之外定义我的变量,或者有没有办法获得返回值?
【问题讨论】:
标签: scala playframework