Sha256: f9deb6c445f0b7421d6564c3bf2f5129af6ed5df54215f4c09d87ff2195fa9de

Contents?: true

Size: 1.19 KB

Versions: 7

Compression:

Stored size: 1.19 KB

Contents

require 'minion'

# A Horde is way to manage a group of Minions
#
# Horde supports the following features for minions
# - Limit the number of Minions in the Horde to prevent overloading the system
# - Queue up requests for Minions when the lmit is reached
# - Optionally block submitting work for Minions when the queued up requests
#   reach a specified number
class Horde
  include SemanticLogger::Loggable

  # Returns the description for this Horde
  attr_reader :description

  # Returns the maximum number of Minions active in this Horde at any time
  attr_reader :capacity

  # Returns the maximum number of queued up requests before blocking
  # new requests for work
  attr_reader :max_queue_size

  # Create a new Horde of Minions
  #
  # Parameters
  #   :description
  #     Description for this task that the Minion is performing
  #     Put in the log file along with the time take to complete the task
  #
  #   :capacity
  #     Maximum number of Minions active in this Horde at any time
  #     Default: 10
  #
  #   :max_queue_size
  #     Maximum number of queued up requests before blocking
  #     new requests for work
  #     Default: -1 (unlimited)
  #
  def initialize(params={})
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
parallel_minion-0.4.1 lib/parallel_minion/horde.rb
parallel_minion-0.4.0 lib/parallel_minion/horde.rb
parallel_minion-0.3.0 lib/parallel_minion/horde.rb
parallel_minion-0.2.1 lib/parallel_minion/horde.rb
parallel_minion-0.2.0 lib/parallel_minion/horde.rb
parallel_minion-0.1.0 lib/parallel_minion/horde.rb
parallel_minion-0.0.1 lib/parallel_minion/horde.rb