- 查了很多资料,没有找到准确的答案,求各位大神解惑
- 有一个需求,是把 redis 的连接传到子进程里面,就产生了很奇怪的情况,没有报错,子进程也没有启动。。。
- 把具体出问题地方整理如下
import redis
from multiprocessing import Pool
import random
import time
def redisInput(redisOb):
time.sleep(2)
print 'test process start'
print redisOb
if __name__ == '__main__':
print 'Input...'
redisOb = redis.Redis(host='10.237.36.108', port=3333, db=0)
p = Pool(5)
for x in range (5):
args = (redisOb,)
#args = (1,)
print type(args)
p.apply_async(redisInput,args)
p.close()
p.join()
print 'The end'
问题出在 p.apply_async 传递的参数上,如果把 args = (redisOb,),改成 args = (1,);子进程就正常了
求各位达人能帮忙看一下。