Class: QueueManager::Daemon

Inherits:
Object
  • Object
show all
Defined in:
lib/queue_manager/daemon.rb

Class Method Summary collapse

Class Method Details

.startObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/queue_manager/daemon.rb', line 7

def start
  if running?
    puts 'Queue manager is already running. Use: QueueManager::Daemon.stop'
    return false
  end

  fork do
    $running = true
    File.write(QueueManager.config.pid_file, Process.pid)
    puts 'Queue manager is running...'

    Signal.trap('TERM') { $running = false }
    while $running do
      QueueManager::Task.handling_queue
      sleep(QueueManager.config.wait)
    end
  end
ensure
  exit!(1)
end

.stopObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/queue_manager/daemon.rb', line 28

def stop
  unless running?
    puts 'Queue manager is not running. Use: QueueManager::Daemon.start'
    return false
  end

  Process.kill('TERM', File.read(QueueManager.config.pid_file).to_i)
  FileUtils.rm_rf(QueueManager.config.pid_file)
  true
rescue
  false
end