狂自私

导航

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__:

posted on 2019-04-15 11:45  狂自私  阅读(3601)  评论(0编辑  收藏  举报