play2.0文档-面向java开发者(7)异步HTTP编程
2012-04-18 22:52
344 查看
Handlingasynchronousresults
处理异步results
Whyasynchronousresults?
为啥需要异步results
Untilnow,wewereabletocomputetheresulttosendtothewebclientdirectly.Thisisnotalwaysthecase:theresultmaydependofanexpensivecomputationoronalongwebservicecall.到目前为止,我们可以直接计算出发送到web客户端的结果。而不会总是这样:结果需要经过耗时的计算或webservice调用。
BecauseofthewayPlay2.0works,actioncodemustbeasfastaspossible(i.e.nonblocking).Sowhatshouldwereturnasresultifwearenotyetabletocomputeit?Theresponseshouldbeapromiseofaresult!
play2.0要求action代码必须尽可能的快(例如非阻塞),如果我们一时还不能计算它,那么我们应该返回什么?答案是一个结果的Promise(承诺)!
A
一个
Thewebclientwillbeblockedwhilewaitingfortheresponsebutnothingwillbeblockedontheserver,andserverresourcescanbeusedtoserveotherclients.
web客户端在等待应答的时候会被阻塞住,但是服务器端不会阻塞,服务器还能给其他客户端提供服务.
HowtocreateaPromise<Result>
如何创建Promise<Result>
Tocreatea为了创建一个
Note:WritingfunctionalcompositioninJavaisreallyverboseforatthemoment,butitshouldbebetterwhenJavasupports
注意:目前在java里写函数组合非常的罗嗦,但是等java支持lamba表达式的时候情况会好一些。
Play2.0asynchronousAPImethodsgiveyoua
当你用
Asimplewaytoexecuteablockofcodeasynchronouslyandtogeta
异步的执行一个代码块的简单方式是使用
Note:Here,theintensivecomputationwilljustberunonanotherthread.ItisalsopossibletorunitremotelyonaclusterofbackendserversusingAkkaremote.
注意:这里,密集的计算会在其他线程里执行。也有可能在后端服务器集群上远程执行.
AsyncResult
异步结果
Whilewewereusing当我们使用
}
)
);
}
Note:
注意:
相关文章推荐
- play2.0文档-面向java开发者(6)
- play2.0文档-面向java开发者(4)
- play2.0文档-面向java开发者(5)
- play2.0文档-面向java开发者(3)
- play2.0文档-面向java开发者(2)
- Play 2.0 用户指南 - 异步HTTP编程 --针对Scala开发者
- Play 2.0 用户指南 - HTTP编程 --针对Scala开发者
- Python 开发者面向文档编程的正确姿势
- Play 2.0 文档 - 入门 -- 针对Scala开发者
- 【GO for java programmers】面向Java开发者的GO编程3
- 【GO for java programmers】面向Java开发者的GO编程2
- 【GO for java programmers】面向Java开发者的GO编程4
- java网络编程____httpclient多线程请求和线程池
- java网络编程____httpclient长连接请求长轮询
- Play 2.0 用户指南 - 表单提交和验证 --针对Scala开发者
- 体验Java 1.5中面向方面(AOP)编程
- iOS网络编程-ASIHTTPRequest异步请求
- java网络编程:URLConnection 和HttpURLConnection
- java网络编程基础夯实06-TCP,UDP,HTTP,Socket简介