小编Dan*_* K.的帖子

Tornado:我可以在异步RequestHandler中调用self.finish()后运行代码吗?

我正在使用龙卷风.我有一堆异步请求处理程序.他们中的大多数都是异步地完成工作,然后将该工作的结果报告给用户.但是我有一个处理程序,它的工作就是简单告诉用户他们的请求将在未来的某个时刻进行处理.我完成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
        ...
Run Code Online (Sandbox Code Playgroud)

我的问题是:这是合法使用龙卷风吗?self.finish()之后的代码是否可靠运行?我之前从来没有遇到任何问题,但现在我在我的一个开发环境中看到了它的问题(并非所有开发环境).我已经确定了一些解决方法,但我想确保我不会遗漏Tornado中请求生命周期的基本内容.没有SEEM是我在调用self.finish()之后无法运行代码的原因,但也许我错了.

谢谢!

python tornado

12
推荐指数
2
解决办法
4546
查看次数

标签 统计

python ×1

tornado ×1