class HerdstWorker::Signals::Facade

Public Class Methods

listen(process_path) click to toggle source
# File lib/herdst_worker/signals/facade.rb, line 5
def self.listen(process_path)
    write_process_file(process_path)
    
    # Start
    Signal.trap "USR1" do |x|
        HerdstWorker::Queue::Facade.start
    end
    
    # Halt
    Signal.trap "USR2" do |x|
        HerdstWorker::Queue::Facade.halt
    end
    
    # Stop (abort)
    Signal.trap "ABRT" do |x|
        HerdstWorker::Queue::Facade.stop
    end
end

Private Class Methods

write_process_file(process_path) click to toggle source
# File lib/herdst_worker/signals/facade.rb, line 25
def self.write_process_file(process_path)
    # Write process id to file so we can signal the current process
    process_id = "#{$$}"
    process_file = process_path + "/process_id"
    
    File.open(process_file, "w") { |file| file.write(process_id) }
end