擅长:python、mysql、java
<p>我也遇到过同样的问题,并为MapResult对象提出了一个简单的解决方案(尽管使用了内部的MapResult数据)</p>
<pre><code>pool = Pool(POOL_SIZE)
result = pool.map_async(get_stuff, todo)
while not result.ready():
remaining = result._number_left * result._chunksize
sys.stderr.write('\r\033[2KRemaining: %d' % remaining)
sys.stderr.flush()
sleep(.1)
print >> sys.stderr, '\r\033[2KRemaining: 0'
</code></pre>
<p>注意,剩余的值并不总是精确的,因为块大小通常是根据要处理的项的数量向上舍入的。</p>
<p>您可以使用<code>pool.map_async(get_stuff, todo, chunksize=1)</code>来循环此操作</p>