如何更改多处理中的参数。池
问题描述:
我想借助python中的多处理功能来执行yapsy-plugins。到目前为止,我有一名工人,如下所示:如何更改多处理中的参数。池
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(???)
我给它称为插件插件对象的数组,但显然的工人需要不同的插件。如何实现这个池?
预先感谢您。
答
经过测试的一点点时间,我想通了,它是如何工作的,如果它不会是一个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