Sha256: 9f9b17bd24fd2a1f97e0b29db52ac1fc3bcfade7b2ad15e6664864c0f29ed9ca

Contents?: true

Size: 1.94 KB

Versions: 4

Compression:

Stored size: 1.94 KB

Contents

module Backburner
  class Configuration
    PRIORITY_LABELS = { :high => 0, :medium => 100, :low => 200 }

    attr_accessor :beanstalk_url       # beanstalk url connection
    attr_accessor :tube_namespace      # namespace prefix for every queue
    attr_reader   :namespace_separator # namespace separator
    attr_accessor :default_priority    # default job priority
    attr_accessor :respond_timeout     # default job timeout
    attr_accessor :on_error            # error handler
    attr_accessor :max_job_retries     # max job retries
    attr_accessor :retry_delay         # (minimum) retry delay in seconds
    attr_accessor :retry_delay_proc    # proc to calculate delay (and allow for back-off)
    attr_accessor :default_queues      # default queues
    attr_accessor :logger              # logger
    attr_accessor :default_worker      # default worker class
    attr_accessor :primary_queue       # the general queue
    attr_accessor :priority_labels     # priority labels
    attr_accessor :reserve_timeout     # duration to wait to reserve on a single server

    def initialize
      @beanstalk_url       = "beanstalk://127.0.0.1"
      @tube_namespace      = "backburner.worker.queue"
      @namespace_separator = "."
      @default_priority    = 65536
      @respond_timeout     = 120
      @on_error            = nil
      @max_job_retries     = 0
      @retry_delay         = 5
      @retry_delay_proc    = lambda { |min_retry_delay, num_retries| min_retry_delay + (num_retries ** 3) }
      @default_queues      = []
      @logger              = nil
      @default_worker      = Backburner::Workers::Simple
      @primary_queue       = "backburner-jobs"
      @priority_labels     = PRIORITY_LABELS
      @reserve_timeout     = nil
    end

    def namespace_separator=(val)
      raise 'Namespace separator cannot used reserved queue configuration separator ":"' if val == ':'
      @namespace_separator = val
    end
  end # Configuration
end # Backburner

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
backburner-1.3.1 lib/backburner/configuration.rb
backburner-1.3.0 lib/backburner/configuration.rb
backburner-1.2.0 lib/backburner/configuration.rb
backburner-1.2.0.pre lib/backburner/configuration.rb