如何使用Typhoeus中止on_body回调中的当前请求

时间:2014-04-30 09:04:52

标签: ruby typhoeus

我使用Typhoeus和十几个请求的九头蛇队列。

我使用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

1 个答案:

答案 0 :(得分:3)

目前没有办法。根据{{​​3}},返回无效大小就足够了。但是在Typhoeus中这不是一个选项,因为回调本身被包装并且它总是返回正确的大小:http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTWRITEFUNCTION

编辑:Ethon 0.7.1能够中止on_body回调中的请求:https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/callbacks.rb#L37-48