class TestHandler(tornado.web.RequestHandler): @tornado.web.asynchronous @tornado.gen.engine def get(self): try: logger.error('query[%s] time[%s]'%(str_req, self.request.request_time())) except: logger.error('error [%s][%s]'% (self.request.uri, traceback.format_exc())) self.write('') finally: try: self.finish() except: pass
如上代码,其中self.request.request_time(),记录的时间是请求开始处理到现在的时间,而并到达时间到发送时间。因此在并发量过大时,调用接口的代码可能发生超时,而此时间打印出来的时间却不存在超时,因为它不包括在epoll事件队列中的等待时间。
下面为request_time()函数原型。
class HTTPRequest(object): def __init__(self, method, uri, version="HTTP/1.0", headers=None, body=None, remote_ip=None, protocol=None, host=None, files=None, connection=None): ... self._start_time = time.time() self._finish_time = None ... def request_time(self): """Returns the amount of time it took for this request to execute.""" if self._finish_time is None: return time.time() - self._start_time else: return self._finish_time - self._start_time
其中 self._start_time 是在HTTPRequest初始化是被赋值。而初始化的位置就在开始处理数据包的时刻,代码位于HTTPConnection类的解析请求头部函数_on_headers中。
//HttpServer.py class HTTPConnection(object): def _on_headers(self, data): try: ... self._request = HTTPRequest( connection=self, method=method, uri=uri, version=version, headers=headers, remote_ip=remote_ip) ... except _BadRequestException, e: logging.info("Malformed HTTP request from %s: %s", self.address[0], e) self.close() return
相关推荐
主要介绍了Python对Tornado请求与响应的数据处理,需要的朋友可以参考下
tornado学习记录20210507.pdf
得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 ...
主要介绍了Python Tornado之跨域请求与Options请求方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
司Tornado课件.pdf (第5页,共108页) 2田凸 ∠v↓台」⑥ Q搜索 1.1 Tornado是为何物 Tornado全称Tornado Web Server,是一个用Python语 言写成的Web服 务器兼Web应用框架,由FriendFeed公 司 在自己的网站FriendFeed...
tornado 入门开发 Tornado is different from most Python web frameworks. It is not based on WSGI, and it is typically run with only one thread per process. See the User’s guide for more on Tornado’s ...
得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的...
VxWorks和Tornado简介 任务和任务间通信 信号、中断处理与定时机制 调试环境与实例分析 网络编程 VxWorks操作系统配置
tornado 简单项目结构
Tornado BSP Training Workshop
tornado 4.0.1 python framework guide
Tornado使用指南(中文版)
Tornado 2.2 入门介绍Tornado 2.2 入门介绍Tornado 2.2 入门介绍Tornado 2.2 入门介绍
Tornado实战Demo全集,适合新手对Tornado项目的研究,包括认证、mysql数据库操作等
Tornado 2.2入门介绍
Tornado使用简明教程,关于Tornado的资料真少,资料虽然简单了点,也是好不容易找到的
python tornado框架 tornado docs官方接口文档、指导手册,欢迎下载,来自官网
中文版的tornado介绍,转好的pdf中文格式.