在Pylons中停止长时间运行的请求

时间:2010-04-25 18:28:00

标签: python pylons

我正在使用Pylons开发应用程序,我想知道是否有办法确保它不会花太多时间处理一个请求。也就是说,我想找到一种方法在每个请求上放置一个计时器,这样当时间过长时,请求就会停止(并且可能会返回某种错误)。

该应用程序应该允许用户运行一些复杂的计算,但我想确保如果计算开始花费太多时间,我们会停止它以允许进行其他计算。

1 个答案:

答案 0 :(得分:3)

更好的方法可能是在单独的线程(或线程)或进程(或进程)中执行长时间运行的计算,而不是使用错误终止请求:

  1. 收到计算请求后,会将其添加到队列中并使用唯一ID进行标识。您可以重定向到引用唯一ID的结果页面,该结果页面可以包含“请等待,计算”消息和刷新按钮(或通过元标记自动刷新)。
  2. 执行计算的线程或进程从队列中弹出请求,更新最终结果(也可能是进度信息),结果页面处理程序在刷新时将呈现给用户。
  3. 计算完成后,返回的刷新页面将没有刷新按钮或刷新标记,但只显示最终结果。