[英]Java EE - How webserver handles long running http request
我当前在Web应用程序中工作,一旦控制器收到请求(请求当前是AJAX请求),该应用程序将触发长时间运行的数据库过程。
我的控制器看起来像这样
@RequestMapping(value="/startProcedureCall.htm", method=RequestMethod.GET)
protected void startProcedureCall(HttpServletRequest request) {
//do some stuff
//...
//...
myService.callProcedure(); //<- this procedure may run upto an hour
//... do some stuff
//...
}
该请求将保留在控制器中,直到myService.callProcedure()
完成执行为止myService.callProcedure()
如代码注释中所述),该过程可能长达一个小时。
我担心的是,Web服务器会允许这么长时间将请求捕获在控制器中吗? 这不会导致某种超时错误吗?
我目前正在使用Websphere作为Web服务器。
这取决于您的Web服务器的配置方式。 像这样的资源将向您展示如何为您的WebSphere版本配置超时设置。
请记住,尽管您可能想要考虑不同的体系结构,例如异步批处理作业(例如,使用Spring Batch )和缓存。 虽然只是一个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.