忽略 Dask 分布式中的长 运行 任务
Ignore long running tasks in Dask distributed
在中讨论了不能在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_completed 迭代器可能会解决您的问题。您可以等待一组期货并在它们到达时更新您的系统。然后你有足够的信息(或者超时已经过去)你可以继续并删除 运行 期货。
在
但是如果我只想忽略这些任务怎么办?
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_completed 迭代器可能会解决您的问题。您可以等待一组期货并在它们到达时更新您的系统。然后你有足够的信息(或者超时已经过去)你可以继续并删除 运行 期货。