さまざまなサーバーから Web ページを取得する小さなサービスを実装しています。さまざまな種類のタイムアウトを構成できる必要があります。私はsettimeout
ソケットの方法をいじってみましたが、それは私が望んでいるものではありません。ここに問題があります。
最初の DNS ルックアップのタイムアウトを指定する必要があります。これは、最初にインスタンス化するときに行われることを理解しています
HTTPConnection
。私のコードは、最初
.read
にデータのチャンク (約 10 MB) を作成し、ペイロード全体がこれに収まる場合は、コードの他の部分に進むように記述されています。これに収まらない場合は、ペイロードをメモリではなくファイルに直接ストリーミングします。これが発生すると、データを取得するために unbounded.read()
を実行し、リモート側がたとえば毎秒 1 バイトのデータを送信すると、接続は毎秒 1 バイトの受信を待機し続けます。「時間がかかりすぎです」と切断できるようにしたい。スレッドベースのソリューションは最後の手段です。