0

タスクをワーカーに送信するためにクラスを使用multiporcessing.Poolします。各ワーカーが起動したとき (またはパラメーターのおかげで置き換えられたときmaxtasksperchild) に、独自の DB 接続を開きます。

コードは次のようになります。

conn = None
def init(dsn):
    global conn
    conn = connect(dsn)

def f(x):
    global conn
    <do the work with conn>

p = multiprocessing.Pool(initializer=init, initargs=('dsn',), maxtasksperchild=100)
p.map(f, ....)

これは機能しますが、そのglobalキーワードは非常に見苦しく見えます。もっと穏やかに行うことはできますか?

4

1 に答える 1

0

この問題でしばらくすると...簡単な答えは、現在の実装ではこの種のことはできないということですPool

于 2013-05-21T15:51:13.847 に答える