データベース内の 300,000 以上の URL をテストして、基本的に URL がまだ有効かどうかを確認する最も効率的な方法を見つけようとしています。サイトを見回したところ、多くの優れた回答が見つかり、現在は次のようなものを使用しています:
ファイルから URL を読み取ります.... URL のテスト:
final URL url = new URL("http://" + address);
final HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setConnectTimeout(1000 * 10);
urlConn.connect();
urlConn.getResponseCode(); // Do something with the code
urlConn.disconnect();
詳細をファイルに書き戻す....
いくつか質問があります: 1) URL をテストして応答コードを取得するより効率的な方法はありますか?
2) 最初は 1 分間に約 50 個の URL をテストできましたが、5 分ほど経つと速度が大幅に低下しました。リリースしていないリソースがいくつかあると思いますが、何が原因かわかりません。
3) 特定の URL (例: www.bhs.org.au) では、接続タイムアウトが設定されていても、上記が数分間ハングします (テストする URL が非常に多い場合は良くありません)。
助けてくれてありがとう、コードを書いてからかなりの年月が経ち、ゼロからやり直しています:-)