0

我使用multiporcessing.Pool类向工作人员提交任务,我希望每个工作人员在启动(或由于maxtasksperchild参数而被替换)时打开自己的数据库连接。

现在代码看起来类似于:

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 回答