我想通过多处理在多个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也是如此。任何想法为什么会发生这种情况以及我应该如何共享请求。进程之间的关系?感谢。
答案 0 :(得分:0)
由于IO不是CPU密集型,您可以考虑使用multiprocessing.dummy,它使用线程而不是进程。这样你就可以跨线程在内存中使用相同的Session。