1、在一个函数里不要直接调用另外一个函数,而是把这个函数和函数的参数放入列表里,这样就不至于要调用的函数出错,此函数报错。
最后循环一下这个列表,让最下端被调用的函数返回值,若有返回值,则打印,就达到了解耦合的效果
# 这里需要使用Queue 共享进程
queue = Manager().Queue()
url = 'http://www.ccdi.gov.cn/special/jdbg3/'
queue.put((url, get_all_province))
# # 添加进程池
# 一般来说,进程的个数小于等于CPU数量的两倍
pool = Pool(1)
res_list = []
while True:
try:
url, func = queue.get(timeout = 5)
print('运行中' + url)
except:
break
res = pool.apply_async(func=func, args=(url, queue))
res_list.append(res)
for res in res_list:
ret = res.get()
if ret:
print(ret)
pool.close()
pool.join()