在AppEngine中检测客户端中止的请求

时间:2012-02-20 15:11:48

标签: google-app-engine servlets request detect abort

我在AppEngine中有一个请求需要一些时间才能完成(很多秒)。有没有办法检测用户或某些网络问题是否已中止请求?这样我就可以节省自己继续生成结果的服务器负载,无论如何都不会去任何地方。

我在开发模式下尝试了以下操作,但都没有工作(还没有检查它在生产模式下是否表现不同):

  • 检查resp.getOutputStream是否完成而不抛出IOException
  • 检查是否有中断发送到servlet线程

谢谢Markus

PS:我对这个问题非常感兴趣,而不是重组我的应用程序以更快地提出请求或防止中止或其他事情。

3 个答案:

答案 0 :(得分:2)

我不知道App Engine上是否可行,app引擎不允许进行中的请求。在处理程序/ servlat返回之后,响应被发送到客户端。

答案 1 :(得分:1)

不,没有办法从应用内部检测到这一点。我不担心。

答案 2 :(得分:0)

迟到但这可能有用。在Golang中,您可以使用Context包检测中断。

以下是Francesc Campoy解释它的有用视频:

https://www.youtube.com/watch?v=LSzR0VEraWw