Sha256: 463c8fd228ee139312409dcaee9387f3784c72107fd885a115a00765919f2e1b

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

module Typhoeus
  module Hydras # :nodoc:

    # This module handles the request queueing on
    # hydra.
    module Queueable

      # Return the queued requests.
      #
      # @example Return queued requests.
      #  hydra.queued_requests
      #
      # @return [ Array ] The queued requests.
      def queued_requests
        @queued_requests ||= []
      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
      def abort
        queued_requests.clear
      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)
      def queue(request)
        request.hydra = self
        if multi.easy_handles.size < max_concurrency
          multi.add(Hydras::EasyFactory.new(request, self).get)
        else
          queued_requests << request
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
typhoeus-0.5.0.alpha lib/typhoeus/hydras/queueable.rb
typhoeus-0.5.0.pre lib/typhoeus/hydras/queueable.rb