[英]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.