先說現象:
單進程完美執行,使用進程池添加子進程死活不執行.一會兒就結束進程.
很鬧心,單進程能執行,說明最起碼我函數邏輯,語法是對的..拍錯步驟:
1.核對創建進程池,添加子進程,阻塞主進程的語法:正確,教科書式的!
2.將函數的雙參數變成單參數:沒有用
3.打開我以前能夠運行的多進程程序.沒毛病,執行的好好的.
4.換vs2017,沒用用.再運行以前的那個多進程程序.你大爺還是你大爺.好好地.
5.去掉函數中的try-except語句塊,添加return語句;沒用
6.比對以前的多進程程序函數和現有的函數代碼.沒什么發現.
7.比對以前的環境和現有的環境:以前的沒添加數據庫,現在的添加了數據庫...
8.卧槽,參數!
9.去掉現有的函數的數據庫參數
開始我這么設計的:
def get_book_content(collection):#collection是pymongo模塊下的集合變量.可以通過這個變量獲取集合里的數據和集合名字
現在我不傳入這個參數,我直接傳入集合名稱和集合內容列表
10.成功!
原因分析,因該是數據庫限制了,同一個庫下面只能有一個集合變量.其余的失效.導致函數執行出錯,子進程退出.
經驗:以后啊!盡量用Python的基礎數據結構,