scala - Play 2.0 Framework (scala) 中的异步结果

标签 scala asynchronous playframework playframework-2.0

阅读文档 Play 声明:

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

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

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

最佳答案

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

这不会影响请求本身的处理方式,但是整个操作将被执行,因为将使用 akka actor promise 进一步的结果。

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

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

关于scala - Play 2.0 Framework (scala) 中的异步结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10744705/

相关文章:

Json4s:转换为 java.sql.Timestamp 不起作用

scala - 从 SparkSession 检索 SparkContext

scala - Kafka - 为什么在将 AUTO_OFFSET_RESET_CONFIG 设置为 "latest"时,新的 groupId 不返回主题中的所有消息

java - play框架使用不在/public文件夹中的图像

Scala:将字符串优雅地转换为 bool 值

javascript - 如何访问 async.parallel 的结果?

asynchronous - 在实践中实现Future时如何使用Context和Wakers

javascript - a)函数或b)代码行的异步性是常数吗?

java - 无法连接到 grpc 服务器并获取 'First received frame was not SETTINGS'

json - 玩 & 乔达 : How to serialize an Option[DateTime] with a given `Writes`