簡體   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