Class | Delayed::Worker |
In: |
lib/delayed/worker.rb
|
Parent: | Object |
SLEEP | = | 5 |
# File lib/delayed/worker.rb, line 12 12: def initialize(options={}) 13: @quiet = options[:quiet] 14: Delayed::Job.min_priority = options[:min_priority] if options.has_key?(:min_priority) 15: Delayed::Job.max_priority = options[:max_priority] if options.has_key?(:max_priority) 16: end
# File lib/delayed/worker.rb, line 48 48: def say(text) 49: puts text unless @quiet 50: logger.info text if logger 51: end
# File lib/delayed/worker.rb, line 18 18: def start 19: say "*** Starting job worker #{Delayed::Job.worker_name}" 20: 21: trap('TERM') { say 'Exiting...'; $exit = true } 22: trap('INT') { say 'Exiting...'; $exit = true } 23: 24: loop do 25: result = nil 26: 27: realtime = Benchmark.realtime do 28: result = Delayed::Job.work_off 29: end 30: 31: count = result.sum 32: 33: break if $exit 34: 35: if count.zero? 36: sleep(SLEEP) 37: else 38: say "#{count} jobs processed at %.4f j/s, %d failed ..." % [count / realtime, result.last] 39: end 40: 41: break if $exit 42: end 43: 44: ensure 45: Delayed::Job.clear_locks! 46: end