在for
循环中,通过执行以下操作很容易跟踪进度:
total_num = 1000
for num, url in enumerate(urls):
print '%s / %s' (num+1, total_num)
# do something
如何使用Pool
跟踪进度?
# input data has 4M items
pool = Pool(parallel_workers)
pool.map(run_item, input_data)
答案 0 :(得分:1)
查看此问题的答案。我想这就是你想要的。
Python multiprocessing - tracking the process of pool.map operation
基本上,您应该使用迭代的map
或异步的map
。
答案 1 :(得分:0)
一个非常基本的近似方法是拥有一个全局变量,然后确定整个进度的大小。这是一个例子:
global progress
progress = set()
def run_item(input_data):
progress.add(url)
print len(progress) * parallel_workers