【发布时间】:2015-09-19 06:09:55
【问题描述】:
我想使用 python 库 tornado(4.2 版)执行一些异步 HTTP 请求。但是,我不能强迫未来完成(使用result()),因为我得到一个异常:“DummyFuture 不支持结果阻塞”。
我有 python 3.4.3,因此未来的支持应该是标准库的一部分。 concurrent.py 的文档说:
Tornado 将使用
concurrent.futures.Future(如果可用); 否则它将使用此模块中定义的兼容类。
下面提供了我正在尝试做的最小示例:
from tornado.httpclient import AsyncHTTPClient;
future = AsyncHTTPClient().fetch("http://google.com")
future.result()
如果我正确理解了我的问题,它的发生是因为 concurrent.futures.Future 的导入以某种方式未被使用。 tornado 中的相关代码似乎在 concurrent.py 中,但我在理解问题的确切位置方面并没有真正取得进展。
【问题讨论】:
-
“Tornado 将使用 concurrent.futures.Future 如果可用”的评论已过时; Tornado 4.x 总是使用自己的 Future 实现。