实现一个爬虫,使用了python的进程池,multiprocessing.Pool,其中process个数设为multiprocessing.cpu_count()。然后遇到三个十分诡异的问题:
1. 进程池启动的进程有一些根本不干活,正在工作的进程少于process个数
2. 进程池中进程完成一个任务后就停止了,等到所有进程都完成了任务再开始新的一轮。比如说,进程池10个进程,每个取一个任务来执行,执行结束进程不再取新任务,貌似是退出了,等到池内10个进程任务都完成,然后10个进程都重新启动去取任务。
3.进程池在所有任务没有完成的且没有异常的情况下私自退出!
进程池每个进程执行一样的任务,任务中有多次次数据库读写和http请求。
困扰很长时间,希望解答
1. 进程池启动的进程有一些根本不干活,正在工作的进程少于process个数
2. 进程池中进程完成一个任务后就停止了,等到所有进程都完成了任务再开始新的一轮。比如说,进程池10个进程,每个取一个任务来执行,执行结束进程不再取新任务,貌似是退出了,等到池内10个进程任务都完成,然后10个进程都重新启动去取任务。
3.进程池在所有任务没有完成的且没有异常的情况下私自退出!
进程池每个进程执行一样的任务,任务中有多次次数据库读写和http请求。
困扰很长时间,希望解答