37,719
社区成员
发帖
与我相关
我的任务
分享
def worker(download_url=("", ""), queue=None):
queue.put((download_url, 'start'))
if os.path.exists(download_url[0]):
return
urllib.urlretrieve(download_url[1], download_url[0] + ".tmp", callback)
os.rename(download_url[0] + ".tmp", download_url[0])
queue.put((download_url, 'end'))
def callback(block, block_size, file_size):
if -1 != file_size:
per = int(100.0 * block * block_size / file_size)
if per > 100:
per = 100
if __name__ == '__main__':
mManager = multiprocessing.Manager()
mQueue = mManager.Queue()
pool = multiprocessing.Pool(self.mProgressNum)
for _list in mDownload_list:
Result.append(self.pool.apply_async(worker, (_list, mQueue,)))
self.pool.close()
self.pool.join()