我正在使用龙卷风。我有一堆异步请求处理程序。他们中的大多数以异步方式完成工作,然后将工作结果报告给用户。但是我有一个处理程序,他的工作就是简单地告诉用户他们的请求将在将来的某个时间点得到处理。我完成了 HTTP 连接,然后做更多的工作。这是一个简单的例子:
class AsyncHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def get(self, *args, **kwargs):
# first just tell the user to go away
self.write("Your request is being processed.")
self.finish()
# now do work
...
我的问题是:这是对 Tornado 的合法使用吗?self.finish() 之后的代码会可靠运行吗?我以前从未遇到过问题,但现在我在我的一个开发环境(不是全部)中看到了它的问题。这里有许多我已经确定的解决方法,但我想确保我没有遗漏 Tornado 中请求生命周期的基本内容。似乎没有理由在调用 self.finish() 后我无法运行代码,但也许我错了。
谢谢!