class QueueManager::Daemon

Public Class Methods

start() click to toggle source
# File lib/queue_manager/daemon.rb, line 6
def start
  if running?
    puts 'Queue manager is already running. To stop it, use rake queue_manager:stop'
    return false
  end

  fork do
    $running = true
    File.write(pid_file, Process.pid)
    logger.info 'Queue manager is running'

    Signal.trap('TERM') do
      $running = false
      remove_pid_file
    end

    while $running do
      QueueManager::Task.handling_queue
      sleep config.wait
    end
  end
ensure
  exit!(1)
end
stop() click to toggle source
# File lib/queue_manager/daemon.rb, line 31
def stop
  unless running?
    puts 'Queue manager is not running. To start it, use: rake queue_manager:start'
    return false
  end

  Process.kill('TERM', File.read(pid_file).to_i)
  remove_pid_file
  logger.info 'Queue manager is stopped'
  true
rescue
  false
end

Private Class Methods

config() click to toggle source
# File lib/queue_manager/daemon.rb, line 63
def config
  QueueManager.config
end
logger() click to toggle source
# File lib/queue_manager/daemon.rb, line 59
def logger
  QueueManager.logger
end
pid_file() click to toggle source
# File lib/queue_manager/daemon.rb, line 55
def pid_file
  config.pid_file
end
remove_pid_file() click to toggle source
# File lib/queue_manager/daemon.rb, line 51
def remove_pid_file
  FileUtils.rm_rf(pid_file)
end
running?() click to toggle source
# File lib/queue_manager/daemon.rb, line 47
def running?
  File.exist? pid_file
end