【发布时间】:2013-09-23 08:12:54
【问题描述】:
我正在将 Tornado 用于 websockets 服务器,我正在尝试弄清楚如何在不阻塞主线程的情况下登录到文件。 tornado.log 是非阻塞的吗?如果没有,是否有一种通用的pythonic方法可以在不阻塞主线程的情况下登录到文件?
谢谢!
【问题讨论】:
-
你可以把消息放在一个消息队列中,然后写到另一个线程中。
我正在将 Tornado 用于 websockets 服务器,我正在尝试弄清楚如何在不阻塞主线程的情况下登录到文件。 tornado.log 是非阻塞的吗?如果没有,是否有一种通用的pythonic方法可以在不阻塞主线程的情况下登录到文件?
谢谢!
【问题讨论】:
Tornado 使用标准库的 logging 模块,该模块在大多数配置中都是阻塞的。 Python 3.2 包含一个QueueHandler 类,可用于将实际 I/O 移动到单独的线程;在此之前,没有非阻塞日志记录的标准解决方案(但 PyPI 上可能有一个具有 2.x 兼容实现的包)。
【讨论】: