我有一行这样的代码:
pool.map(functools.partial(method_to_run, self), data)
method_to_run
获取数据项,然后使用附加到self的对象向服务器发出请求,该对象的实例变量包含先前设置的身份验证令牌。
我遇到的问题是,每个进程似乎都会获得该对象(或self
)的一个新实例,因此该实例没有设置令牌,因此请求失败。
有没有办法在池化进程之间共享自身?
发布于 2018-07-20 04:36:10
虽然您可以使用管理器完成此操作,但这意味着对象每次被修改时都会被复制到所有其他进程中。
我建议将令牌本身传递给进程,而不是复制整个对象。如果在调用pool.map
时没有可用的令牌,那么惯用的想法是创建一个Queue
,以便稍后将令牌发送到您的进程。您的进程可以位于Queue
的另一端,在发出请求之前等待令牌。
https://stackoverflow.com/questions/51431243
复制相似问题