2

aiohttp を使用して、エラスティック検索サーバーにデータを投稿しています。このような挿入に対するエラスティックは、挿入された行ごとに応答を生成するため、大量の不要なトラフィックがクライアント アプリケーションに返されます。次のコードを使用してこの問題を回避したかった

response = await http_session.request("POST", url, data = data, params = params)
first_n_bytes = (await response.content.read(n_bytes)).decode("utf-8")
response.release()
# response.close()

最初にリリース方法を試しましたが、ドキュメントと帯域幅の測定から、コンテンツ全体もダウンロードしているようです. 次に、response.close() を試しましたが、他のリクエストに対して同じ http_session を維持しながらこれを行うのが安全かどうかはまったくわかりません。

問題は、response.close() が安全かどうか、それで問題が解決するかどうか、または非同期で行う別の方法があるかどうかです。

4

1 に答える 1

3

はい、通話resp.close()は安全です。応答の末尾を読み取らずに、開いているサーバーへの接続を閉じます。

明らかに、キープアライブは明示的な接続のクローズではサポートされていませんresp.release()。デフォルトの使用が推奨されるのはそのためです。

しかし、あなたの場合、resp.close()かなりうまくいくはずです。

于 2016-07-14T07:55:51.047 に答える