我有我自己的包,想并行它正在做的任务。 我需要在单个worker中打开会话、执行查询和关闭会话。 以多处理文档为例,脚本如下所示:
from multiprocessing import Pool
from OwnDB import odb
def worker(y):
session = odb('db_name', 'user', 'password')
print(session)
result = session.query("select name from table")
session.disconnect()
return [y, result]
if __name__ == '__main__':
test_nums = [1,2,3,4,5,6]
with Pool(processes=2) as p:
print(p.map(worker, test_nums))
这段代码不需要打开和关闭会话就可以正常工作。但是,当我用会话代码执行它时,我只得到第一组池工作线程(在本例中为2)的结果,然后它运行直到我杀死它
我的假设是,多处理包不知道worker何时完成—为什么会这样?工人如何表示它完成了
目前没有回答
相关问题 更多 >
编程相关推荐