Python 客户端完成从tornado web服务器下载后,如何调用该函数?

Python 客户端完成从tornado web服务器下载后,如何调用该函数?,python,tornado,Python,Tornado,我希望能够运行一些清理功能,当且仅当客户端成功完成下载我使用Tornado提供的文件时 我安装了firefox throttle工具,让它将连接速度降低到拨号速度,并安装了此处理程序以生成一堆垃圾随机文本: class CrapHandler(BaseHandler): def get(self, token): crap = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in ra

我希望能够运行一些清理功能,当且仅当客户端成功完成下载我使用Tornado提供的文件时

我安装了firefox throttle工具,让它将连接速度降低到拨号速度,并安装了此处理程序以生成一堆垃圾随机文本:

class CrapHandler(BaseHandler):
    def get(self, token):
        crap = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(100000))
        self.write(crap)
        print "done"
发出请求后,我立即从tornado获得以下输出:

done
I 100524 19:45:45 web:772] 200 GET /123 (192.168.45.108) 195.10ms
然后,客户端缓慢地下载大约20秒。我希望它会在客户端完成后打印“完成”

此外,如果我做以下操作,我会得到几乎相同的结果:

class CrapHandler(BaseHandler):
    @tornado.web.asynchronous
    def get(self, token):
        crap = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(100000))
        self.write(crap)
        self.finish()
        print "done"

我是不是错过了一些基本的东西?龙卷风能支持我所做的吗?如果没有,是否有其他替代方法?

我相信您正在寻找可以覆盖的请求处理程序方法中运行的东西

请记住,如果您在nginx后面运行,tornado将立即响应nginx,nginx将缓慢响应客户端


另外,请记住,添加
@tornado.web.asynchronous
实际上并不会使请求异步。它只是将请求设置为使用
tornado.http.AsyncHTTPClient

我相信您正在寻找可以覆盖的请求处理程序方法中运行的东西

请记住,如果您在nginx后面运行,tornado将立即响应nginx,nginx将缓慢响应客户端


另外,请记住,添加
@tornado.web.asynchronous
实际上并不会使请求异步。它只设置了使用
tornado.http.AsyncHTTPClient的请求

on\u connection\u close如何处理http keepalives?在这种情况下,请求之间的连接是否会保持打开状态?on_connection_close如何处理http keepalives?在这种情况下,请求之间的连接是否保持打开状态?