サービスに参加するためのコードを書いています。特定のサービスへの POST リクエストを受け取り、処理を開始します。全体のプロセスはかなり単純です。リクエスト内の項目をループして、各項目をデータベースに追加します。問題は、多くのアイテムを処理する必要があり、ループが終了するまでに 3 分ほどかかる場合に発生します。その後、応答しようとすると、次のようになります。
status = '200 OK'
headers = [('Content-type', 'application/json'),('Access-Control-Allow-Origin','*')]
start_response(status, headers)
return json.dumps(response)
次のエラーが表示されます。
Exception happened during processing of request from ('XXX.XXX.XXX.XXX', 49172)
Traceback (most recent call last):
File "/usr/local/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/local/lib/python2.7/SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "/usr/local/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/lib/python2.7/SocketServer.py", line 640, in __init__
self.finish()
File "/usr/local/lib/python2.7/SocketServer.py", line 693, in finish
self.wfile.flush()
File "/usr/local/lib/python2.7/socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
これが役立つかどうかはわかりませんが、POST リクエストはブラウザから別のドメインに転送された POST であり (そのため Access-Control-Allow-Origin です)、データベースへのすべてのアクセスは単一のSQLAlchemyを使用してデータベースと対話するオブジェクト( Java EE DAOパターンと同様に見ることができます)。
このエラーを回避するにはどうすればよいですか?