Многократный HTTP-запрос - Rails - PullRequest
1 голос
/ 19 мая 2010

Мое приложение проверяет количество доменов, чтобы убедиться, что они действительны (около 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?

1 Ответ

1 голос
/ 21 мая 2010

Одно из предложений - разделить список доменов на две или более частей массива.

затем запустите разные темы для каждого из них

t1 = Thread.new {func1 ()} t2 = Thread.new {func1 ()} t1.join t2.join

http://www.tutorialspoint.com/ruby/ruby_multithreading.htm

Это эмулированный параллелизм, и я не понимаю, почему он не будет быстрее, чем b4

...