1

次のようなサブプロセスを開始する関数を呼び出したいと思います。

processrrd = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
outputrrd = processrrd.communicate()
(output, error) = outputrrd

ここで、ワーカーを麻痺させるためにmultiprocessing.poolを使用したいと思います。問題は、変数outputrrdが最後のPopenによって上書きされないことです。それで、name1_processrrdのような特定の変数(processrrd)を作成することは可能ですか?

よろしく。ステファン

UDPATE:これを試しましたが、プロセスの出力は同じです....:

processrrd = []
processrrd.append((hostgroup+'_processrrd'))
print processrrd
    for name in processrrd:
        print name
        name = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
        outputrrd = name.communicate()
    (output, error) = outputrrd
4

1 に答える 1

1

より良いアプローチが得られるかどうかを考慮しなくてもmultiprocessing(そうだと思いますが、まったくよくわかりません)、各ハンドルをadictやaなどのある種のデータ構造に格納する方がよいでしょう。 list、例えば、

# TODO Use name and key that works for you.
my_processes['de_DE@euro'] = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
于 2012-07-31T14:38:01.300 に答える