对于给定的会话,有没有办法找到以前的HttpRequest?
Web客户端向长时间运行的web服务发送请求。当此服务运行时,客户端发送另一个请求。我想定位第一个请求,并向它发送一个停止信号。
背景:我有一个需要2-4秒处理的web服务。servlet托管在Tomcat容器中,并使用OSGi访问另一个插件中的主处理器。
这些请求来自另一个网站,它允许用户一次发出10个左右的请求。当用户等待时,他们可能会进行另一个页面更改,这将启动另外10个web请求。我需要一种方法来定位之前的请求。然后,我将找到一种方法来向长时间运行的进程发送一个停止信号,这将允许原始HttpRequest以适当的错误代码结束。
也许看待这个问题的另一种方式是说:如果客户端发出一系列重叠的请求,那么我们只想为最后一个请求提供服务,并尽快取消之前的请求。
发布于 2012-07-07 07:15:44
我不认为HttpSession能给你想要的东西,但我建议你做一个对象,你的请求可以定期检查它们是否是“最新”的请求。如果它们不再是最新的请求,那么它们可以停止自己并立即返回。
发布于 2012-07-09 20:42:37
您可以将上一个请求作业任务保留在会话中。在下一个并行请求中,您可以获取先前的请求作业并执行您想要的操作。
https://stackoverflow.com/questions/11370322
复制相似问题