0
我使用multiporcessing.Pool
类将任务提交给工作人员,我希望每个工人在启动时(或者由maxtasksperchild
参数替换)来打开自己的数据库连接。如何为多处理池的ewery成员初始化数据库连接?
现在代码类似于此:
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
关键字看起来非常难看,能不能更温柔呢?