Java EE - Web服务器如何处理长时间运行的http请求

时间:2013-10-11 03:47:02

标签: java spring java-ee httprequest

我目前正在使用一个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()完成执行,如代码注释中所述,可能会运行长达一个小时。

我担心的是,Web服务器是否会允许请求被困在控制器中这么长时间?这不会导致某种超时错误吗?

我目前正在使用websphere作为网络服务器。

1 个答案:

答案 0 :(得分:2)

这取决于您的Web服务器的配置方式。像this这样的资源将向您展示如何为您的WebSphere版本配置超时设置。

请记住,您可能需要考虑不同的体系结构,例如异步批处理作业(例如使用Spring Batch)和缓存。只是一个想法。