我们对某些功能进行了内存密集型处理,我们希望限制此处理的并行请求数。我们可以使用WebLogic中的“工作管理器”进行配置,并限制该servlet的线程数。
例如,如果我们将最大线程限制为3,那么如果有10个并行请求; 7个请求在队列中。在某些情况下,队列中等待的请求可能需要30-40分钟才能处理完毕。我们做了简单的测试,15分钟后因超时而无法显示收到的页面,并在1小时后收到消息。
是否有人知道WebLogic中是否存在增加/减少超时的设置并避免无法显示页面?
感谢任何人对此有任何想法。
答案 0 :(得分:1)
是否有人知道WebLogic中是否存在增加/减少超时的设置并避免无法显示页面?
可能有些东西,但我实际上没有检查,因为它无论如何都是一个糟糕的建议。通过寻找这个,你试图在这里解决错误的问题。即使你不介意用户在等待(也没有提到他可以刷新页面并排队越来越多的工作),浏览器就不会像你所描述的那样(> 30mn)进行长时间运行的过程。 / p>
所以,我认为正确答案是:使用 asynchronism ,这是一个完美的用例。当用户单击该按钮时,将JMS消息发送到队列(或创建Quartz作业)并向用户发送带有请求ID的页面,告知他稍后返回。处理完成后,在某处更新状态并使状态/结果可供用户使用。实际上,用户体验会更好,并且与浏览器相比,您将面临的问题更少。
答案 1 :(得分:0)
1)使用其他工具(不是浏览器),如WGET,您可以在其中控制超时参数(--timeout)。
2)为什么使用HTTP?使用消息驱动的bean并向其发送消息JMS,而不关心超时。
答案 2 :(得分:0)
也许石英可以做你需要的东西?找到工作并根据需要办理登记手续?