playframework真正异步吗?

Dea*_*ler 8 playframework

最佳答案在评论部分(所以我无法给出答案点数:().

我想知道playframework是否以这种方式异步(这将是真正的异步,或完全异步).是的,前端的play是异步的,允许100个线程上的1000个客户端,但是在后端,没有办法实现这一点,或者我错了(我希望是这样).....

public static void someRequest(String id) {

     //This method adds listener to a nio socket listener so it returns
     //IMMEDIATELY and page can't be rendered at this point
     fetchRemoteDataFromOtherSystem(id, new MyListener());

     // DO NOT RENDER PAGE YET but return so thread can be used for other requests
}

public class MyListener extends SomeListener {
    public void fireResponse(Response response) {
        renderPage(response);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这将是极端异步行为,并且还要注意,如果您的后端系统需要几秒钟来响应每个请求,那么现在需要大约100台机器来为相同数量的用户提供服务.在后端系统速度非常快的正常环境中,当然没有性能差异.

谢谢,迪恩

Car*_*ten 6

看看Play 2.0.它仍然是测试版,但它有一些很好的异步东西.

对于第一个Play,请查看此文档页面,其中包含Play的异步功能,以及Play Akka模块(当您使用它时,也是Akka本身 :)).