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