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

2024-06-28 14:47:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够运行一些清理功能,如果并且只有当客户端成功地完成了下载一个我正在使用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"

我是不是遗漏了一些基本的东西?龙卷风能支持我的计划吗?如果没有,有没有其他的选择呢?在


Tags: selftoken客户端getstringdefrandom速度
1条回答
网友
1楼 · 发布于 2024-06-28 14:47:33

我相信您正在寻找在^{}请求处理程序方法中运行的东西,您可以重写它。在

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

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

相关问题 更多 >