我的应用程序环境是Tomcat 7.0,JDK 1.7。我使用Jersey作为REST API。我们的一种post类型REST API请求处理时间超过3分钟,它只是大约时间,可能超过3分钟。然后,当我们的请求处理完成时,我们将响应发送回客户端。但是这里请求处理需要3分钟,所以我在客户端获得了请求时间,而且我没有从服务器得到任何响应,因为我期望成功响应
服务器上的请求处理如下:
启动请求
结束请求处理
以上所有流程都必须在交易中,因此我们无法删除上述任何流程,
我们已经提高了流程第2步的最佳性能,只有当我们使用超过1 GB的文件请求时,才会发生这种情况。
截至目前,对于临时解决方案,我们已经增加了在Apache服务器中配置的超时值。
现在我正在寻找我的问题的解决方案,采用以下任何一种方法:
谢谢&问候 Yatin Baraiya
答案 0 :(得分:1)
因为我认为用以下方法来解决我的问题。
解决我的问题的流程实施步骤
1.首次向服务器发送请求==========>服务器立即将响应发送给客户端并生成一些Id,并在同一进程中由其他线程启动长时间运行的进程。
2.在客户端首先接收第一个请求响应并等待几秒钟然后再次向服务器发送其他请求以进行长时间运行的进程检查状态====>服务器获取第二个请求并响应客户端关于长时间运行的响应状态的状态,发送进行中或已完成
3.如果客户得到回复:正在进行中
4.然后客户等待几秒钟再次发送状态检查请求===>服务器发送响应完成
5.如果客户得到回复:完成
这意味着我们从客户端管理事务,将多个请求发送到服务器并确认流程是否成功完成,然后我们开始处理下一个操作。
通过上述方法我们得到了交易流程,让我知道是我解决上述问题的方法,是否足够或者此解决方案需要进行任何更改?