Class: Qless::PoolFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/qless/pool/pool_factory.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ PoolFactory

Returns a new instance of PoolFactory.



4
5
6
7
8
9
10
11
# File 'lib/qless/pool/pool_factory.rb', line 4

def initialize(options={})
  @options = {
      :term_timeout => ENV['TERM_TIMEOUT'] || 4.0,
      :verbose => !!ENV['VERBOSE'],
      :very_verbose => !!ENV['VVERBOSE'],
     :run_as_single_process => !!ENV['RUN_AS_SINGLE_PROCESS']
  }.merge(options)
end

Instance Method Details

#clientObject



13
14
15
# File 'lib/qless/pool/pool_factory.rb', line 13

def client
  @qless_client ||= Qless::Client.new
end

#client=(client) ⇒ Object



17
18
19
# File 'lib/qless/pool/pool_factory.rb', line 17

def client=(client)
  @qless_client = client
end

#reserver(queues) ⇒ Object



29
30
31
# File 'lib/qless/pool/pool_factory.rb', line 29

def reserver(queues)
  reserver_class.new(queues)
end

#reserver_classObject



21
22
23
# File 'lib/qless/pool/pool_factory.rb', line 21

def reserver_class
  @reserver_class ||= Qless::JobReservers.const_get(ENV.fetch('JOB_RESERVER', 'Ordered'))
end

#reserver_class=(reserver_class) ⇒ Object



25
26
27
# File 'lib/qless/pool/pool_factory.rb', line 25

def reserver_class=(reserver_class)
  @reserver_class = reserver_class
end

#worker(queues) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/qless/pool/pool_factory.rb', line 33

def worker(queues)
  queues = queues.to_s.split(',').map { |q| client.queues[q.strip] }
  if queues.none?
    raise "No queues provided"
  end
  
  Qless::Worker.new(reserver(queues), @options)
end