gpt4 book ai didi

Python:如何检查 multiprocessing.Pool 中待处理任务的数量?

转载 作者:太空狗 更新时间:2023-10-29 20:22:06 27 4
gpt4 key购买 nike

我有一小部分 worker (4) 和非常大的任务列表 (5000~)。我正在使用池并使用 map_async() 发送任务。因为我正在运行的任务相当长,所以我将 chunksize 强制设置为 1,这样一个长进程无法支撑一些较短的进程。

我想做的是定期检查还有多少任务要提交。我知道最多 4 个将处于事件状态,我关心的是还有多少要处理。

我用谷歌搜索了一下,找不到任何人这样做。

一些简单的代码来帮助:

import multiprocessing
import time

def mytask(num):
print('Started task, sleeping %s' % num)
time.sleep(num)

pool = multiprocessing.Pool(4)
jobs = pool.map_async(mytask, [1,2,3,4,5,3,2,3,4,5,2,3,2,3,4,5,6,4], chunksize=1)
pool.close()

while True:
if not jobs.ready():
print("We're not done yet, %s tasks to go!" % <somethingtogettasks>)
jobs.wait(2)
else:
break

最佳答案

看起来 jobs._number_left 就是您想要的。 _ 表示它是一个内部值,可能会随开发人员的心血来潮而改变,但它似乎是获取该信息的唯一方法。

关于Python:如何检查 multiprocessing.Pool 中待处理任务的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5542868/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com