Class: SolidQueue::Configuration

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model, ActiveModel::Validations::Callbacks
Defined in:
lib/solid_queue/configuration.rb

Defined Under Namespace

Classes: Process

Constant Summary collapse

WORKER_DEFAULTS =
{
  queues: "*",
  threads: 3,
  processes: 1,
  polling_interval: 0.1
}
DISPATCHER_DEFAULTS =
{
  batch_size: 500,
  polling_interval: 1,
  concurrency_maintenance: true,
  concurrency_maintenance_interval: 600
}
SCHEDULER_DEFAULTS =
{
  polling_interval: 5,
  dynamic_tasks_enabled: false
}
DEFAULT_CONFIG_FILE_PATH =
"config/queue.yml"
DEFAULT_RECURRING_SCHEDULE_FILE_PATH =
"config/recurring.yml"

Instance Method Summary collapse

Constructor Details

#initialize(**options) ⇒ Configuration

Returns a new instance of Configuration.



41
42
43
# File 'lib/solid_queue/configuration.rb', line 41

def initialize(**options)
  @options = options.with_defaults(default_options)
end

Instance Method Details

#checkObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/solid_queue/configuration.rb', line 64

def check
  if valid?
    warnings.full_messages.each { |warning| $stderr.puts warning }
    $stdout.puts "Solid Queue configuration is valid."

    true
  else
    $stderr.puts "Solid Queue configuration is invalid:"
    (warnings.full_messages + errors.full_messages).each do |message|
      message.each_line { |line| $stderr.puts "  #{line.chomp}" }
    end

    false
  end
end

#configured_processesObject



45
46
47
48
49
50
# File 'lib/solid_queue/configuration.rb', line 45

def configured_processes
  if only_work? then workers
  else
    dispatchers + workers + schedulers
  end
end

#modeObject



52
53
54
# File 'lib/solid_queue/configuration.rb', line 52

def mode
  options[:mode].to_s.inquiry
end

#standalone?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/solid_queue/configuration.rb', line 56

def standalone?
  mode.fork? || options[:standalone]
end

#warningsObject



60
61
62
# File 'lib/solid_queue/configuration.rb', line 60

def warnings
  @warnings ||= ActiveModel::Errors.new(self)
end