我想调用一个函数,它启动一个子进程,如:
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覆盖。 那么,是否可以创建一个特定的变量(processrrd),如name1_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
答案 0 :(得分:1)
甚至没有考虑multiprocessing
是否给你更好的方法(我猜它确实如此,但根本不知道它),你最好将每个句柄存放在某种形式数据结构,例如dict
或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'})