require 'net/http'
urls = [
{'link' => 'http://www.google.com/'},
{'link' => 'http://www.yandex.ru/'},
{'link' => 'http://www.baidu.com/'}
]
urls.each do |u|
u['content'] = Net::HTTP.get(URI.parse(u['link']))
end
print urls
Bu kod, eşzamanlı olarak çalışır. İlk istek, ikinci, üçüncü. Tüm istekleri eşzamansız olarak göndermek ve hepsi tamamlandıktan sonra urls
'u yazdırmak istiyorum.Eşzamansız olarak birden çok HTTP isteği oluşturma
Bunu yapmanın en iyi yolu nedir? Elyaf bunun için uygun mu?
görünüyor. Ama sunucu 15 saniye sonra yanıt vermiyorsa iş parçacığı nasıl öldürülür? – NVI
'Timeout.timeotu (20) do .... end' kullanabilirsiniz. Bu da bir hata yaratır, bu nedenle program akışınız ile bir şeyler yapmanız ve bir içeriğin "içerik" anahtarının mevcut olup olmadığını kontrol etmekten başka bir şeyin tamamlandığını etiketlemenin bir yoluna sahip olmanız gerekir. –
Ruby's Net :: HTTP threadsafe nedir? – Daniel777