3

阅读文档 Play 声明:

http://www.playframework.org/documentation/2.0/ScalaAsync

“由于 Play 2.0 的工作方式,动作代码必须尽可能快(即非阻塞)。”

然后继续展示如何编写异步结果。有人可以扩展为什么“动作代码必须尽可能快”吗?更改为异步结果如何影响在较低级别处理请求的方式?除了抽象之外,还有什么好处?

4

1 回答 1

6

实际上,将异步用于可能很长或本质上异步的调用(调用其他远程 api,如 twitter、db、...)只有客户端会等待,而不是服务器(Play 2.0 的工作方式)

这不会影响它自己的请求将如何被处理,但是整个操作将被执行,因为结果将被承诺为进一步的结果,使用 akka 演员。

最后一点是关键,akka 将尽可能多地重用可用线程,而不是让它们保持休眠状态。

谈论我如何使用异步是在使用 Neo4J REST API 处理持久对象时,因为数据库的这种使用取决于网络、带宽、查询性能……拥有 HA 解决方案可能很麻烦,因为大部分请求等待。在云环境中。将导致您添加流程/实例并最终花费您很多;-)

于 2012-05-24T21:17:13.870 回答