这可能听起来有点奇怪,但是 Tornado 是否有可能在将未来包装在超时后完成执行?
所以是这样的:
try:
result = yield gen.with_timeout(time.time() + 1, future)
except gen.TimeoutError as e:
print('Timed out!')
所以在这种情况下,future
在超时之前没有完成,但我希望它继续执行它所拥有的任何可调用对象。
换句话说,我希望能够使用它gen.WaitIterator
来获得一组期货的结果,如文档中所述:
如果你需要尽快得到每个future的结果,或者如果你需要一些future的结果,即使其他future产生错误,你可以使用
WaitIterator
.
这正是我正在寻找的,我希望尽快获得每个未来的结果,因为我有一些任务比其他任务花费的时间更长,但有一个例外:那些缓慢的任务应该继续产生结果,以便我以后可以访问它们。
这甚至可能吗?