class Workerholic::Worker
handles job execution in threads
Attributes
alive[RW]
queue[RW]
thread[R]
Public Class Methods
new(queue=nil)
click to toggle source
# File lib/workerholic/worker.rb, line 7 def initialize(queue=nil) @queue = queue @alive = true @logger = LogManager.new end
Public Instance Methods
join()
click to toggle source
# File lib/workerholic/worker.rb, line 29 def join thread.join if thread end
kill()
click to toggle source
# File lib/workerholic/worker.rb, line 25 def kill self.alive = false end
work()
click to toggle source
# File lib/workerholic/worker.rb, line 13 def work @thread = Thread.new do while alive serialized_job = poll JobProcessor.new(serialized_job).process if serialized_job end end rescue ThreadError => e @logger.info(e.message) raise Interrupt end
Private Instance Methods
poll()
click to toggle source
# File lib/workerholic/worker.rb, line 35 def poll if queue queue.dequeue else sleep 0.1 nil end end