私は、さまざまなサーバーからWebページを取得する小さなサービスを実装しています。私は異なるタイプのタイムアウトを設定できる必要があります。私はソケットのsettimeout
メソッドでうんざりしようとしましたが、正確には私が好きではありません。ここに問題があります。pythonのさまざまなタイムアウトhttplib
初期DNSルックアップのタイムアウトを指定する必要があります。私は最初に
HTTPConnection
をインスタンス化するときにこれが行われることを理解しています。私のコードは、最初に
.read
のデータ(約10 MB)が書き込まれ、ペイロード全体がこれに収まるようにコードの他の部分に移動します。これに収まらない場合は、ペイロードをメモリーではなくファイルに直接ストリームします。これが起こると、データを取得するために無制限の.read()
を実行します。リモート側から1秒ごとに1バイトのデータが送信されると、毎秒1バイトの受信を待っているだけです。私は「あなたは長すぎます」と切り離したいと思っています。スレッドベースのソリューションが最後の手段になります。
これはうまくいくでしょう。できるだけ外部の依存関係(特にCのもの)を避けたいので、私の最後の手段です。 –
@ NoufalIbrahim:[私は 'pycurl.TIMEOUT'を試してみました。それは動作します](http://stackoverflow.com/a/32685765/4279) – jfs