当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python distributed.as_completed用法及代码示例


用法:

class distributed.as_completed(futures=None, loop=None, with_results=False, raise_errors=True)

按完成的顺序返回期货

这将返回一个迭代器,该迭代器按照它们完成的顺序产生输入的未来对象。在迭代器上调用 next 将阻塞,直到下一个未来完成,无论顺序如何。

此外,您还可以在计算期间使用 .add 方法向该对象添加更多期货

参数

futures: Collection of futures

按照完成顺序迭代的 Future 对象列表

with_results: bool (False)

是否等待并包括期货结果;在这种情况下 as_completed 产生一个元组 (future, result)

raise_errors: bool (True)

当未来的结果引发异常时我们是否应该引发;仅在 with_results=True 时影响行为。

例子

>>> x, y, z = client.map(inc, [1, 2, 3])  
>>> for future in as_completed([x, y, z]):  
...     print(future.result())  
3
2
4

在计算期间添加更多期货

>>> x, y, z = client.map(inc, [1, 2, 3])  
>>> ac = as_completed([x, y, z])  
>>> for future in ac:  
...     print(future.result())  
...     if random.random() < 0.5:  
...         ac.add(c.submit(double, future))  
4
2
8
3
6
12
24

也可以选择等到结果收集完毕

>>> ac = as_completed([x, y, z], with_results=True)  
>>> for future, result in ac:  
...     print(result)  
2
4
3

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 distributed.as_completed。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。