Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails-Servlet3.0异步请求处理_Grails_Asynchronous_Controller_Httprequest_Servlet 3.0 - Fatal编程技术网

Grails-Servlet3.0异步请求处理

Grails-Servlet3.0异步请求处理,grails,asynchronous,controller,httprequest,servlet-3.0,Grails,Asynchronous,Controller,Httprequest,Servlet 3.0,我今天发现了Servlet3.0异步工具。我已经读过了,并且认为我理解了这个概念 我想知道:这会对“标准”控制器的操作产生任何影响吗?还是应该保存它以供web服务或广泛的计算过程使用 换句话说,在控制器的所有动作上使用它,而不事先考虑动作方法的计算时间,这是一个坏主意吗? 如果是,你能解释一下原因吗 先谢谢你 不,这不是个好主意 在控制器操作中,您收到一个请求并希望尽快提供响应。您只能对可以延迟的事情使用异步 如果用户在您的网站上请求一个页面,您不能使用空页面进行响应,然后进行回推以更新他的页面

我今天发现了Servlet3.0异步工具。我已经读过了,并且认为我理解了这个概念

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

换句话说,在控制器的所有动作上使用它,而不事先考虑动作方法的计算时间,这是一个坏主意吗? 如果是,你能解释一下原因吗


先谢谢你

不,这不是个好主意

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


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

不,这不是个好主意

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


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

您应该阅读Grails文档以了解

通常,对于快速执行的控制器操作,异步处理请求的好处不大。但是,对于长时间运行的控制器操作,这是非常有益的

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


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

您应该阅读Grails文档以了解更多信息

通常,对于快速执行的控制器操作,异步处理请求的好处不大。但是,对于长时间运行的控制器操作,这是非常有益的

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


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

大多数流行的Java web容器一次可以处理多个请求吗?也就是说,如果一个请求被阻塞,在原始请求完成之前,是否会将所有未来的请求放入一个队列中?对我来说,这将是使用ayncs的主要原因:释放服务器。大多数流行的Java web容器一次可以处理多个请求吗?也就是说,如果一个请求被阻塞,在原始请求完成之前,是否会将所有未来的请求放入一个队列中?对我来说,这将是使用ayncs的主要原因:释放服务器。