我想通过多进程在多个python进程之间共享略微修改过的requests.Session版本,但一件奇怪的事情正在发生在我身上。通过队列和管理器,我得到的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上。有什么想法吗?为什么会发生这种情况,以及我应该如何在进程之间共享requests.Session?谢谢。
发布于 2017-02-09 02:26:55
由于IO不是CPU密集型的,您可以考虑使用multiprocessing.dummy,它使用线程而不是进程。这样你就可以跨线程在内存中使用相同的会话。
https://stackoverflow.com/questions/42120791
复制相似问题