Tornado 4.5的新功能

2017年4月16日

向后兼容性警告

  • 这个 tornado.websocket 模块现在对传入消息的大小施加限制,默认为10mib。

新模块

  • tornado.routing 提供比内置路由系统更灵活的路由系统 Application .

一般变化

  • 减少了循环引用的数量,减少了内存使用并提高了性能。

tornado.auth

  • 这个 tornado.auth module has been updated for compatibility with a change to Facebook's access_token endpoint . 这包括最初在龙卷风4.4.3中发布的更改和支持 `session_expires 新格式的字段。这个 session_expires 字段当前是一个字符串;它应该作为 int(user['session_expires']) 因为它将在Tornado5.0中从字符串更改为int。

tornado.autoreload

  • 自动加载现在与 asyncio 事件循环。

  • 自动加载不再尝试关闭 IOLoop 以及重新启动之前注册的所有文件描述符;它依赖于 CLOEXEC 正在设置标志。

tornado.concurrent

  • 抑制了关闭时可能记录的一些“nonetype”object not callback“消息。

tornado.gen

  • yield None 现在等于 yield gen.moment . moment 被贬低。这提高了与 asyncio .

  • 修复了生成器对象可能被过早地垃圾收集的问题(通常在使用弱引用时)。

  • 新功能 is_coroutine_function 标识由包装的函数 coroutineengine .

tornado.http1connection

  • 这个 Transfer-Encoding 头现在被不敏感地解析为大小写。

tornado.httpclient

  • SimpleAsyncHTTPClient 现在进行308次重定向。

  • CurlAsyncHTTPClient 将不再接受除 httphttps . 要覆盖此项,请设置 pycurl.PROTOCOLSpycurl.REDIR_PROTOCOLS 在一个 prepare_curl_callback .

  • CurlAsyncHTTPClient 现在支持通过新的 proxy_auth_mode 争论。

  • 支持的最低版本 libcurl 现在是 7.22.0 .

tornado.httpserver

  • HTTPServer 现在接受关键字参数 trusted_downstream 它控制的分析 X-Forwarded-For 标题。此头可能是受信任代理的一个列表或一组IP地址,将在 X-Forwarded-For 名单。

  • 这个 no_keep_alive 论点又起作用了。

tornado.httputil

  • url_concat 正确处理片段和现有查询参数。

tornado.ioloop

  • 修复了回调返回空列表或dict后100%的CPU使用率。

  • IOLoop.add_callback 现在使用了一个无锁的实现,它可以安全地从 __del__ 方法。这提高了对 add_callbackIOLoop 线程,对于来自其他线程的调用稍微减少它。

tornado.iostream

  • memoryview 现在允许将对象作为参数 write .

  • 内存缓冲区 IOStream 现在使用 bytearray 而不是 bytes ,提高性能。

  • 期货退回人 write 如果第二次调用 write 在上一个完成之前发生。

tornado.log

tornado.netutil

  • 解决了在Solaris上导致“LookupError:Unknown Encoding:Latin1”错误的问题。

tornado.process

  • Subprocess 不再导致python 3.6上出现“subprocess still running”警告。

  • 改进的错误处理 cpu_count .

tornado.tcpclient

  • TCPClient 现在支持 source_ipsource_port 争论。

  • 改进了对IPv6支持不完整的环境的错误处理。

tornado.tcpserver

tornado.web

tornado.websocket

  • WebSocketHandler.on_message 实现现在可能是协同程序。在上一条消息之前,不会处理新消息 on_message 连体衣已经完成了。

  • 这个 websocket_ping_intervalwebsocket_ping_timeout 应用程序设置现在可用于启用WebSocket连接的定期Ping,从而允许检测和关闭断开的连接。

  • 新的 websocket_max_message_size 设置默认为10mib。如果收到大于此值的消息,则连接将关闭。

  • 按标题设置 RequestHandler.prepareRequestHandler.set_default_headers 现在作为WebSocket握手的一部分发送。

  • 返回值来自 WebSocketHandler.get_compression_options 现在可以包括钥匙了 compression_levelmem_level 设置gzip参数。默认的压缩级别现在是6而不是9。

演示

  • 新的文件上载演示可在 file_upload 目录。

  • 一个新的 TCPClient and TCPServer demo is available in the tcpecho 目录。

  • 已经对几个现有演示进行了小更新,包括对jquery的更新。

信用

以下人员对此版本做出了贡献:

  • A杰西·杰瑞·戴维斯

  • 亚伦欧普尔

  • 山崎明弘

  • 亚力山大

  • 安德烈亚斯·R·斯达尔

  • 安得烈拉伯特

  • 安得烈苏敏

  • 安托万皮特里

  • 安托万皮托

  • 阿图尔·斯塔维阿尔斯基

  • 本·达奈尔

  • 布瑞恩梅戈

  • 达里奥

  • 道格巴尔加斯

  • 尤金杜博维

  • 伊夫乔达尔

  • JZQT

  • 杰姆斯迈尔

  • 亨特

  • 莱诺斯

  • 马克·亨德森

  • 迈克尔诉德帕拉蒂斯

  • 闵瑞克

  • 米尔恰

  • 发出砰的声响

  • 平阳

  • 里卡多·马格里奥切蒂

  • 塞缪尔陈

  • 塞缪尔·迪翁·吉拉多

  • 斯科特·梅斯堡

  • 肖恩丁

  • TaoBeier

  • 托马斯克鲁伊弗

  • 瓦迪姆塞门诺夫

  • 马蒂

  • MIKE820324

  • 细高跟鞋

  • 知民

  • 附带条件