RequestHandler是否相当于对python的finalize()调用?

时间:2012-01-16 00:18:41

标签: python google-app-engine

基于webapp.RequestHandler的处理程序可以覆盖initialize()来执行设置。是否有类似的finalize()?我可以覆盖 del ()来实现这一目标吗?

基本上,我希望在post / get函数完成后制作一些日记条目,这样就不会在Response的关键路径中回到浏览器..

我可以(1)在这个'finalize'调用中执行此操作,假设在将Response刷新到浏览器之后调用它,或者(2)将工作推送到单独的线程池队列中。如果有办法做前者,那将更容易/更简单。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以覆盖__del__,但这很危险(可能会引入GC循环和无法收集的对象),并且不会为您带来任何好处。

您没有获得任何结果,因为在WSGI应用程序返回之前,App Engine运行时不会将响应返回给用户,直到所有用户代码完成执行后才会发生。同样,前端上的线程的运行时间不能超过创建它们的请求的范围。

如果您想在请求范围之外的地方工作,您应该使用任务队列。