0

我的应用程序使用的是 Struts 1.x,它在 WAS 上运行。

所有动作类都工作正常,除了一个我单击一个按钮并调用一个动作(预计将在 1 小时内完成)然后它开始执行..问题出现在几分钟后调用相同的动作而没有任何按钮触发或任何代码更改。每隔几分钟就会发生 n 次...

如果有人对此有任何想法,请告诉我。

4

1 回答 1

0

需要1 小时才能完成的请求是不正常的:您应该重新设计此功能。

简而言之,您遇到了这个问题,因为请求需要太多时间才能完成。有关问题原因的技术说明,请参阅为什么用户代理在服务器重置 TCP 后重新提交请求?

解决方案:创建一个单独的线程(或并行线程池,如果可能)来处理长时间运行的计算,并立即发送一个响应页面,显示“请求已接受”。该页面还可以使用 JavaScript 定期发送“完成了吗?” 向服务器请求。您还应该提供一种机制来查询挂起的请求,以便关闭浏览器的用户无需等待最终的“是的,完成!” response 可以在他们想要的时候得到结果。

于 2015-07-07T11:28:14.650 回答