Python 忽略Dask分布式系统中长时间运行的任务

Python 忽略Dask分布式系统中长时间运行的任务,python,distributed,dask,Python,Distributed,Dask,在中讨论了在Dask(语言限制)中不能取消已启动的任务 但是如果我只是想省略这些任务呢 start_computing_time = time.time() for future in task_pool: if condition: do_something_long(future.result()) else: future.cancel() total_computing_time = time.time() - start_

在中讨论了在Dask(语言限制)中不能取消已启动的任务

但是如果我只是想省略这些任务呢

start_computing_time = time.time()

for future in task_pool:
    if condition:
       do_something_long(future.result()) 
    else:       
       future.cancel()

total_computing_time = time.time() - start_computing_time
在我的应用程序中,执行时间非常关键。一旦满足停止条件,我只想省略正在运行的任务,因为我不再对这些结果感兴趣。据我所知,
future.cancel()
只会取消尚未运行的期货

但是对于那些正在执行的任务,有没有办法忽略它们


提前谢谢你

听起来迭代器可能会解决您的问题。您可以等待一组期货,并在它们到达时更新您的系统。然后您就有了足够的信息(或者超时已经过去),您可以继续并删除正在运行的期货。

我忘了提到我正在使用
as\u completed
迭代器(
task\u poll=as\u completed(futures)
);但据我所知,运行futures是不能取消的(当执行行
future.cancel()
时,futures已经计算出来)是正确的。您不能停止在Python中运行线程。然而,并不是所有的期货都在积极运行,有些可能正在等待一个开放的插槽,或者等待依赖项。