저는 십여 가지 요청 중 히드라 큐와 함께 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 중 하나가 매우 큰 파일 인 경우 디스크에 계속 쓰지 않고 가능한 한 빨리 중단하고 싶습니다. 그걸 처리하는 가장 좋은 방법은 무엇입니까? –
요청을 중단하기 위해 특별한 반환 값이있는 변경 내용을 병합합니다. like : __ abort_request. 그게 가장 쉬운 방법 인 것 같습니다. – i0rek
비행 중 요청을 중단 할 수있는 Ethon 버전을 출시했습니다. https://github.com/typhoeus/ethon/commit/6117872004c9ed1dac0ac15542dffc10177d8eae – i0rek