问题描述
TypeError: can't pickle psycopg2.extensions.connection objects
res = pool.map(self.abc,data)
是的,我有一个存储在 self.db 中的数据库连接。如果我实例化简单函数没有问题
res = pool.map(abc,data)
问题是我无法提取Class之外的逻辑,依赖太多。
我的问题是:有没有办法暂时“屏蔽”self.db,这样我就可以在“池”吃午饭然后“取消屏蔽”它,这样 pool.map() 就不会尝试腌制数据库连接
解决方法
我能够通过全局变量和函数使其工作..它丑陋但是......
global SELF
def REDIRECT(arg) : return SELF.method(arg)
class ....:
def blah(self):
...
global SELF
SELF = self
with Pool(....) as pool :
res = pool.map(REDIRECT,data)