2016-07-13 6 views
2

私たちは弾性検索サーバーにデータを投稿するためにaiohttpを使用しています。このような挿入で弾性を持つと、挿入された各行に対して応答が生成され、大量の不要なトラフィックがクライアントアプリケーションに戻ってきます。私たちは、次のコードaiohttp本体の最初のnバイトのみをダウンロードします。

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() 

まず、我々はreleaseメソッドを試してみましたが、ドキュメントからと帯域幅の測定から、また、全体のコンテンツをダウンロードしているようだを使用してこの問題を回避したかったです。それから、response.close()を試しましたが、他のリクエストに対して同じhttp_sessionを維持しながらこれが安全なものかどうかはわかりません。

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

答えて

3

はい、resp.close()を呼び出すことは安全です。 応答テールを読まずにサーバーへの接続を終了します。

明らかに、キープアライブは明示的な接続終了ではサポートされていないため、デフォルトの使用にはresp.release()をお勧めします。

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

関連する問題