我的应用程序会检查多个域以查看它们是否有效(大约 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
该代码在考虑重定向的同时检查响应代码。这工作正常。我唯一的问题是当我把它放在一个循环中时,我希望它并行运行。因此,我不必等待域 1 响应就可以请求域 2。
我已经在 PHP 中使用 curl_multi 来并行运行请求。我可以在 Rails 中做类似的事情吗?