リストに multiprocessing.Process オブジェクトのコレクションがあり、それらはすべて「プロセス セーフ キュー」と呼ばれるものの同じインスタンスを使用して、プロセス セーフ (スレッド セーフだがプロセスあり) の方法で通信します。スレッドの管理を担当する親プロセス。
子プロセスが何かをキューに入れようとすると、最初に multiprocessing.Manager > RLock を取得し、次にキューに書き込み、最後にロックを解放する ProcessSafeQueue().enqueue() を呼び出します。
この場合、それは子プロセスの pid でした。エラーのトレースバックは次のとおりです。
Traceback (most recent call last):
File /usr/lib/python2.5/site-packages/my_project/some_module.py, line 87, in send_data
q.enqueue(os.getpid())
File /usr/lib/python2.5/site-packages/my_project/some_module.py, line 33, in enqueue
self.lock.acquire()
File /usr/lib/python2.5/site-packages/processing/managers.py, line 979, in acquire
return self._callMethod(\'acquire\', (blocking,))
File /usr/lib/python2.5/site-packages/processing/managers.py, line 740, in _callMethod
self._connect()
File /usr/lib/python2.5/site-packages/processing/managers.py, line 727, in _connect
connection = Client(self._token.address, authkey=self._authkey)
File /usr/lib/python2.5/site-packages/processing/connection.py, line 187, in Client
answerChallenge(c, authkey)
File /usr/lib/python2.5/site-packages/processing/connection.py, line 425, in answerChallenge
message = connection.recvBytes()
そして、実際のエラーは次のとおりです。
IOError: [Errno 11] リソースが一時的に利用できません
アプリケーションが約 7 時間正常に実行された後、なぜこのエラーが発生するのかを誰かが理解するのを手伝ってくれるかどうか疑問に思っています。