Class: Steve::Worker

Inherits:
Object
  • Object
show all
Defined in:
lib/steve/worker.rb

Instance Method Summary collapse

Constructor Details

#initialize(queue) ⇒ Worker

Returns a new instance of Worker.



4
5
6
# File 'lib/steve/worker.rb', line 4

def initialize(queue)
  @queue = queue
end

Instance Method Details

#startObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/steve/worker.rb', line 8

def start
  Steve.log "*** Starting job worker #{Steve.worker_name} (queue: #{@queue})"
  
  trap("TERM") { Steve.log("*** Exiting..."); $exit = true }
  trap("INT")  { Steve.log("*** Exiting..."); $exit = true }
  
  loop do
    jobs = Steve::QueuedJob.execute_jobs(@queue)
    count = jobs.size
    
    unless count == 0
      Steve.log "*** #{count} jobs processed"
    else
      break if $exit
      $0 = "sj: waiting for jobs on #{@queue}"
      sleep(Steve.worker_sleep_time || 5)
    end
    
    break if $exit
  end
  
end