class Coolie::Worker
Constants
- UNCAUGHT_ERROR
Public Class Methods
new(job, output)
click to toggle source
# File lib/coolie/worker.rb, line 5 def initialize(job, output) @job = job @output = output setup end
Public Instance Methods
start()
click to toggle source
# File lib/coolie/worker.rb, line 11 def start trap_signals loop do break if stopped? perform_job end exit 0 end
Private Instance Methods
perform_job()
click to toggle source
# File lib/coolie/worker.rb, line 24 def perform_job if child = fork _, status = Process.waitpid2 child @output.write UNCAUGHT_ERROR unless status.success? || stopped? else self.process_name = "Child of worker #{Process.ppid}" begin @job.perform exit 0 rescue Exception exit 1 end end end
process_name=(name)
click to toggle source
# File lib/coolie/worker.rb, line 57 def process_name=(name) $0 = name end
setup()
click to toggle source
# File lib/coolie/worker.rb, line 53 def setup @job.setup if @job.respond_to? :setup end
stop()
click to toggle source
# File lib/coolie/worker.rb, line 45 def stop @stopped = true end
stopped?()
click to toggle source
# File lib/coolie/worker.rb, line 49 def stopped? @stopped end
trap_signals()
click to toggle source
# File lib/coolie/worker.rb, line 39 def trap_signals Signal.trap('INT') do stop end end