我的应用环境是Tomcat 7.0,JDK 1.7。我将 Jersey 用于 REST API。我们的一个 post 类型 REST API 请求的处理时间超过 3 分钟,这只是大约时间,可能超过 3 分钟。然后,当我们的请求处理完成时,我们将响应发送回客户端。但是这里的请求处理需要 3 分钟,所以我在客户端得到了请求超时,并且我没有从服务器得到任何响应,因为我期望成功响应
服务器上的请求处理如下:
开始请求
- 将详细信息插入数据库表[此过程需要几秒钟的时间]
- 将文件复制到远程计算机服务器 [此过程需要 3 分钟]
- 更新/激活文件 [此过程需要几秒钟的时间]
- 向客户端发送响应
结束请求处理
以上所有流程都必须在 transaction 中,所以我们不能删除以上任何流程,
我们已经提高了流程第 2 步的最佳性能,并且只有在我们请求超过 1 gb 大小的文件时才会发生这种情况。
到目前为止,对于临时解决方案,我们已经增加了在 Apache 服务器中配置的超时值。
现在我正在寻找我的问题的解决方案,使用以下任何一种方法:
- 建议我任何可以解决我的问题的开发或实施策略,并且应该像我描述的那样预期?
- 如何解决请求超时问题?
- 正在寻找响应完成时从服务器端通知客户端的解决方案?
- 正在寻找无法通过 Jersey REST API 实现关闭客户端和服务器之间的连接的解决方案?
感谢和问候亚廷·巴拉亚