2017-02-08 17 views
1

私は少し変更されたバージョンの要求を共有したいと思っています。複数のPythonプロセス間で多重処理を介してセッションしていますが、奇妙なことが起こっています。 QueueとManagerを介して、私が取得したrequests.Sessionオブジェクトは、変更されたものから削除されます。共有要求.Pythonのプロセス間のセッション

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

IOはCPUを多用しないため、プロセスの代わりにスレッドを使用するmultiprocessing.dummyの使用を検討することができます。そうすれば、スレッド間で同じセッションをメモリ内で使用することができます。

関連する問題