module Typhoeus::Hydra::Queueable
This module handles the request queueing on hydra.
@api private
Public Instance Methods
Source
# File lib/typhoeus/hydra/queueable.rb, line 27 def abort queued_requests.clear end
Abort the current hydra run as good as possible. This means that it only clears the queued requests and can’t do anything about already running requests.
@example Abort hydra.
hydra.abort
Source
# File lib/typhoeus/hydra/queueable.rb, line 62 def dequeue add(queued_requests.shift) unless queued_requests.empty? end
Removes a request from queued_requests
and adds it to the hydra in order to be performed next.
@example Dequeue request.
hydra.dequeue
@since 0.6.4
Source
# File lib/typhoeus/hydra/queueable.rb, line 74 def dequeue_many number = multi.easy_handles.count until number == max_concurrency || queued_requests.empty? add(queued_requests.shift) number += 1 end end
Removes requests from queued_requests
and adds them to the hydra until max_concurrency is reached.
@example Dequeue requests.
hydra.dequeue_many
@since 0.6.8
Source
# File lib/typhoeus/hydra/queueable.rb, line 38 def queue(request) request.hydra = self queued_requests << request end
Enqueues a request in order to be performed by the hydra. This can even be done while the hydra is running. Also sets hydra on request.
@example Queue request.
hydra.queue(request)
Source
# File lib/typhoeus/hydra/queueable.rb, line 49 def queue_front(request) request.hydra = self queued_requests.unshift request end
Pushes a request to the front of the queue, to be performed by the hydra. Also sets hydra on request
@example Queue reques.
hydra.queue_front(request)
Source
# File lib/typhoeus/hydra/queueable.rb, line 16 def queued_requests @queued_requests ||= [] end
Return the queued requests.
@example Return queued requests.
hydra.queued_requests
@return [ Array<Typhoeus::Request> ] The queued requests.