2

我今天发现了 Servlet 3.0 异步工具。我已经阅读了它,并认为我理解了这个概念。

我想知道:这会对“标准”控制器的操作产生任何影响,还是应该将其保存以供 Web 服务或广泛的计算过程使用?

换句话说,将它用于所有控制器的动作,而不事先考虑动作方法的计算时间是不是一个坏主意?如果是,你能给我解释一下为什么吗?

先感谢您。

4

2 回答 2

2

不,这将是一个坏主意。

在控制器操作中,您收到一个请求,并且您希望尽快提供响应。您只能将异步用于可以延迟的事情。

如果用户在您的网站上请求页面,您不能以空页面响应,然后执行推送以更新他的页面。我只会将此功能用于 AJAX 请求,甚至不会用于所有请求。你必须决定什么是异步运行有意义,什么不是。

于 2012-08-27T19:32:09.723 回答
2

您应该阅读 Grails 文档以了解异步请求处理

一般来说,对于快速执行的控制器操作,异步处理请求几乎没有什么好处。但是,对于长时间运行的控制器操作,这是非常有益的。

原因是异步/非阻塞响应,一个线程==一个请求==一个响应关系被打破。容器可以保持客户端响应打开和激活,同时将线程返回容器处理另一个请求,提高可伸缩性。

希望这应该足够清楚,但请询问是否有不清楚的地方。

于 2015-04-09T13:18:45.343 回答