[英]How to vary the arguments in multiprocessing.Pool
我想借助python中的多處理來執行yapsy插件。 到目前為止,我有一個工人,如下所示:
def mp_worker(plugin, importer, orgadb, regiondb, ispdb):
print(" Processs " + plugin.plugin_object.getOrigin + " running.")
processPlugin(plugin, importer, orgadb, regiondb, ispdb)
print(" Process " + plugin.plugin_object.getOrigin + " done.")
plugin參數是一個插件對象。 函數processPlugin做必要的工作,但與問題有關。
我的多處理程序處理程序是我堅持的地方:
def mp_handler(plugins, importer, orgadb, regiondb, ispdb):
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
pool.map(mp_worker(???)
我給它提供了一個帶有名為plugins的插件對象的數組,但是很明顯,工作人員需要不同的插件。 如何做到這一點呢?
先感謝您。
經過一段時間的測試,我弄清楚了如果不使用Yapsy插件類,它將如何工作:
def mp_worker(importer, orgadb, regiondb, ispdb, plugin):
processPlugin(plugin, importer, orgadb, regiondb, ispdb)
def mp_handler(plugins, importer, orgadb, regiondb, ispdb):
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
func = partial(mp_worker, importer, orgadb, regiondb, ispdb)
pool.map(func, plugins)
pool.close()
反正用插件類,所以任何人誰願意多進程yapsy插件也有看看這個泡菜不工作: http://yapsy.sourceforge.net/MultiprocessPluginProxy.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.