我試圖構建一個多處理腳本,它從MySQL表中檢索屬性的字典,然後在並行中運行我的主腳本實例,使用檢索到的每個字典從MySQL表中作爲參數傳遞給主腳本的每個實例。主腳本有一個名爲queen_bee()的方法,它負責確保所有其他方法都有正確的信息並按正確的順序執行。python 27 - 並行創建並運行另一個腳本的實例
我嘗試遍歷列表中的字典,以便使用多處理庫創建/運行主腳本的並行處理。但他們最終連續運行,而不是同時運行:
from my_main_script import my_main_class as main
import multiprocessing as mp
def create_list_of_attribute_dicts():
...
return list_of_dicts
for each_dict in list_of_dicts:
instance = main(each_dict)
p = mp.Process(target=instance.queen_bee(),args=(each_dict,))
p.start()
...
我也嘗試使用多處理庫的Pool.map()方法。但我無法弄清楚如何實例主要腳本一次使用Pool.map()每個字典:
...
pool = mp.Pool()
jobs = pool.map(main.queen_bee(),list_of_dicts)
的Pool.map方法似乎是最清潔,最Python的方式來獲得這些實例並行運行,但在這種情況下,我掛斷了正確的方式。我知道上面的'jobs'變量會失敗,因爲'main'沒有被實例化。然而,我不知道如何將每個字典作爲參數傳遞給主類的不同實例,然後使用map方法運行這些實例。我願意嘗試不同的方法。在此先感謝您的幫助。