class Forkworker::Worker

Public Instance Methods

work!(worker_data, &block) click to toggle source
# File lib/forkworker/worker.rb, line 5
def work!(worker_data, &block)
  @worker_data = worker_data
  @running = true
  update_title("spawned")
  traps

  instance_eval(&block)

  exit(0)
end

Private Instance Methods

traps() click to toggle source
# File lib/forkworker/worker.rb, line 18
def traps
  trap(:TERM) do
    @running = false
    update_title
  end
end
update_title(status = nil) click to toggle source
# File lib/forkworker/worker.rb, line 25
def update_title(status = nil)
  @last_status = status if status
  run_state = @running ? 'running' : 'shutting down'

  $PROGRAM_NAME = "Worker ##{Process.pid} | #{run_state} | #{@last_status}"
end