Python3.6进程池添加子进程不执行_一次傻屌行为
先说现象:
单进程完美执行,使用进程池添加子进程死活不执行.一会儿就结束进程.
很闹心,单进程能执行,说明最起码我函数逻辑,语法是对的..拍错步骤:
1.核对创建进程池,添加子进程,阻塞主进程的语法:正确,教科书式的!
2.将函数的双参数变成单参数:没有用
3.打开我以前能够运行的多进程程序.没毛病,执行的好好的.
4.换vs2017,没用用.再运行以前的那个多进程程序.你大爷还是你大爷.好好地.
5.去掉函数中的try-except语句块,添加return语句;没用
6.比对以前的多进程程序函数和现有的函数代码.没什么发现.
7.比对以前的环境和现有的环境:以前的没添加数据库,现在的添加了数据库...
8.卧槽,参数!
9.去掉现有的函数的数据库参数
开始我这么设计的:
def get_book_content(collection):#collection是pymongo模块下的集合变量.可以通过这个变量获取集合里的数据和集合名字
现在我不传入这个参数,我直接传入集合名称和集合内容列表
10.成功!
原因分析,因该是数据库限制了,同一个库下面只能有一个集合变量.其余的失效.导致函数执行出错,子进程退出.
经验:以后啊!尽量用Python的基础数据结构,
==============2020年10月30日================
调用子进程的时候,最好是位于父进程中,且需要使用if __name__ == __main__: