Class: QueueManager::Daemon

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

Class Method Summary collapse

Class Method Details

.startObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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

.stopObject



31
32
33
34
35
36
37
38
39
40
41
42
43
# 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