私のアプリケーションは、いくつかのドメインをチェックして、それらが有効かどうかを確認します (約 100)。単一のドメインをチェックする次のコードがあります。
def self.test_url uri, limit = 10
if limit == 0
return get_error_messages("001")
end
begin
url = URI.parse(uri)
response = Net::HTTP.start(url.host, url.port).request_head('/')
rescue SocketError => e
return get_error_messages("002")
end
case response
when Net::HTTPRedirection then test_url(response['location'], limit - 1)
else return get_error_messages(response.code)
end
end
このコードは、リダイレクトを考慮しながら応答コードをチェックします。これはうまくいきます。私が抱えている唯一の問題は、これをループに入れたときに、並行して実行したいということです。そのため、ドメイン 2 をリクエストする前にドメイン 1 の応答を待つ必要はありません。
curl_multi を使用して PHP でこれを管理し、リクエストを並行して実行しました。Railsでできる同様のことはありますか?