2016-08-18 3 views
0

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

플러그인 매개 변수는 플러그인 개체입니다. 함수 processPlugin은 필요한 작업을 수행하지만 질문과 관련이 없습니다. 내가 붙어 곳

는 멀티 프로세싱에 대한 나의 핸들러는 다음과 같습니다

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

나는 그것을 플러그인라는 플러그인 객체 배열을 제공하고 있지만, 분명히 노동자가 다른 플러그인이 필요합니다. 이걸로 수영장을 얻는 방법?

미리 감사드립니다.

답변

0

후 나는 그것이 yapsy 플러그인 클래스가 wouldnt하는 경우는, 어떻게 작동하는지 알아 냈 시험의 약간의 시간 : 원하는 사람이 플러그인 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() 

어쨌든 피클 나던 작업 또한 이것을 살펴 봐야합니다. http://yapsy.sourceforge.net/MultiprocessPluginProxy.html

관련 문제