繁体   English   中英

如何在multiprocessing.Pool中改变参数

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM