当且仅当客户端成功完成我使用 Tornado 提供的文件的下载时,我希望能够运行一些清理功能。
我安装了 firefox 油门工具,让它将连接速度降低到拨号速度,并安装了这个处理程序来生成一堆垃圾随机文本:
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 秒。我希望它会在客户端完成后打印“完成”。
此外,如果我执行以下操作,我会得到几乎相同的结果:
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"
我在这里错过了一些基本的东西吗?龙卷风甚至可以支持我正在尝试做的事情吗?如果没有,是否有替代方案?