2

RESTful API への多数の同時呼び出しを実行するツールを作成しています。Python の「Requests」モジュールと「threading」モジュールを使用しています。システムで同時に取得するスタックが多すぎると、次のような例外が発生します。

ConnectionError: HTTPConnectionPool(host='xxx.net', port=80): URL: /thing/subthing/ で最大再試行回数を超えました (原因: [Errno 10055] システムに十分なリソースがないため、ソケットでの操作を実行できませんでしたバッファー スペースまたはキューがいっぱいだったため)

バッファとキューのスペースを増やすか、Requests モジュールに使用可能なスロットを待機させるにはどうすればよいですか?

(「try」ループに詰め込むことができることは知っていますが、それは不器用に思えます)

4

1 に答える 1

3

セッションを使用します。メソッドのrequests.requestファミリ (get、post、...) を使用する場合、各リクエストは独自の接続プールを持つ独自のセッションを使用するため、接続プールは使用されません。

セッション内で使用される接続の数を微調整する必要がある場合は、それを変更することでこれを行うことができますHTTPAdapter

于 2013-07-10T13:56:28.113 に答える