2
我正在使用Typhoeus和十幾個請求中的九頭蛇隊列。如何使用Typhoeus中止on_body回調中的當前請求
我正在使用on_body回調來傳輸響應。
什麼是放棄此回調中的當前請求(即達到最大文件大小...)的最佳方式,而不中止隊列中的所有其他請求?
hydra = Typhoeus::Hydra.hydra
urls.each do |url|
request = Typhoeus::Request.new(url, followlocation: true, timeout: 5, connecttimeout: 5)
request.on_body do |chunk, response|
#
# How to conditionally abort the request here ?
#
end
hydra.queue request
end
hydra.run
感謝您的回答!我的問題是,我使用Typhoeus和一個隊列來抓取一些我無法控制內容的URL。如果其中一個URL最終是一個非常大的文件,我希望儘快放棄,而不必將其寫入光盤。處理這個問題的最好方法是什麼? –
我會合並一個具有特殊返回值以中止請求的更改。如:__ abort_request。這似乎是最簡單的方法。 – i0rek
我發佈了一個Ethon版本,可以放棄在飛行中的請求。 https://github.com/typhoeus/ethon/commit/6117872004c9ed1dac0ac15542dffc10177d8eae – i0rek