在Python

时间:2017-02-08 18:22:15

标签: python python-requests python-multiprocessing

我想通过多处理在多个python进程之间共享略微修改的requests.Session版本但是发生了奇怪的事情。通过Queue和Manager,我得到的requests.Session对象都被删除了我的修改。

 s = requests.Session()
 s._my_custom_field = "test"

 q = multiprocessing.Queue()
 q.put(s)
 s_from_queue = q.get(s)
 s_from_queue._my_custom_field

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Session' object has no attribute '_my_custom_field'

Manager也是如此。任何想法为什么会发生这种情况以及我应该如何共享请求。进程之间的关系?感谢。

1 个答案:

答案 0 :(得分:0)

由于IO不是CPU密集型,您可以考虑使用multiprocessing.dummy,它使用线程而不是进程。这样你就可以跨线程在内存中使用相同的Session。