如何更改多处理中的参数。池

问题描述:

我想借助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