Я создал форму на веб-странице, которая позволяет пользователю вводить URL, и возвращается некоторая информация о CSS URL.Инструмент работает отлично, кроме одной проблемы, которую я заметил.
Когда я ввожу URL-адрес сайта, на котором размещен скрипт (тестируется локально, на промежуточном сервере и на рабочем сервере), команда open-uri 'open' возвращает Timeout :: Error.Теперь это не удивительно, я предполагаю, что что-то блокируется где-то вдоль линии, и в процессе запуска сценария и открытия текущего URL-адреса процессы становятся немного связанными.
ДляСсылка, вот метод, где происходит Таймаут:
# loads the Nokogiri XML object if it hasn't already been loaded
def site
begin
timeout(10) do
@site ||= Nokogiri::HTML(open(url))
end
rescue Timeout::Error
return nil
end
end
Мой вопрос: как мне разрешить сценарию «открывать» домен, на котором в данный момент выполняется сценарий?Нужно ли мне создавать другой поток или что-то еще для обработки этого конкретного аспекта моего инструмента, если так, как я могу гарантировать, что остальная часть моего сценария не будет запущена, пока я не получу что-то действительное от команды open?* Спасибо за любые предложения или советы по этому вопросу.