你怎么称呼功能的客户端从龙卷风Web服务器完成下载后?(How do you call functi

2019-10-22 05:34发布

我想能够运行一些清理功能,当且仅当客户成功完成我使用龙卷风服务文件的下载。

我安装了火狐油门工具,把它减慢连接到拨号速度和安装该处理程序生成一堆垃圾随机文本的:

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"

我从龙卷风以下输出发出请求后,立即:

done
I 100524 19:45:45 web:772] 200 GET /123 (192.168.45.108) 195.10ms

然后,客户端下载以及约20秒plods。 我预计,这将打印“完成”客户端已完成后。

另外,如果我这样做,我得到几乎相同的结果:

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"

我失去了一些基本的东西在这里吗? 可以龙卷风甚至支持我想要做什么? 如果没有,有没有,做的方法吗?

Answer 1:

我相信你正在寻找的东西运行on_connection_close你可以重写请求处理方法。

请记住,如果你是背后nginx的运行,龙卷风将响应立即Nginx等nginx的会慢慢给客户答复。

另外,请记住,添加@tornado.web.asynchronous实际上并没有提出请求的异步。 它只是设置的最高使用要求tornado.http.AsyncHTTPClient



文章来源: How do you call function after client finishes download from tornado web server?