我希望能够运行一些清理功能,如果并且只有当客户端成功地完成了下载一个我正在使用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获得以下输出:
^{pr2}$然后客户端缓慢地下载了大约20秒。我希望在客户完成后它会打印“done”。在
另外,如果我做以下操作,我得到的结果几乎相同:
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
。在相关问题 更多 >
编程相关推荐