2016-08-18 18 views
0

Pythonでマルチプロセッシングの助けを借りてyapsy-pluginsをexeceuteしたいと思います。今のところ私は次のようなワーカーを持っています:マルチプロセスで引数を変更する方法.Pool

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.") 

プラグインパラメータはプラグインオブジェクトです。関数processPluginは必要な作業を行いますが、質問には関係ありません。私は立ち往生どこ

はマルチプロセッシングのための私のハンドラは、次のとおりです。

def mp_handler(plugins, importer, orgadb, regiondb, ispdb): 
    pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()) 
    pool.map(mp_worker(???) 

私はそれをプラグインと呼ばれるプラグインのオブジェクトの配列を与えているが、明らかに労働者が別のプラグインを必要とします。これでプールを達成する方法は?

ありがとうございます。それはyapsyプラグインクラスもwouldntの場合、私は、それがうまくいく方法を考え出しテストのわずかな時間の後

答えて

0

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プラグインをマルチしたい人のためのプラグインクラスでdoesntの仕事を酸洗これを見なければならない: http://yapsy.sourceforge.net/MultiprocessPluginProxy.html

関連する問題