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