Class: SqsImageProcessor::Manager

Inherits:
Thor
  • Object
show all
Defined in:
lib/sqs_image_processor/manager.rb

Overview

Main interface to the application. Provides 4 commands to the user.

  • start

  • stop

  • status

  • generate_config

Instance Method Summary collapse

Instance Method Details

#generate_configObject



64
65
66
# File 'lib/sqs_image_processor/manager.rb', line 64

def generate_config
  SqsImageProcessor::Generators.config_generator
end

#startObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/sqs_image_processor/manager.rb', line 22

def start
  config_path = options[:c]
  daemonize = options[:d]
  child_pids = []

  if !File.exists?(config_path)
    puts "Error: Config file not found."
  elsif SqsImageProcessor::ProcessManager.is_running?
    puts "Error: An instance of SqsImageProcessor is already running."
  else
    Process.daemon if daemonize
    SqsImageProcessor::ProcessManager.generate_pid_file
    config = SqsImageProcessor::Config.load( config_path )
    puts "Loaded config file at #{config_path}."
    puts "Starting SQS Image Processor."
    4.times do
      fork do
        SqsImageProcessor::Worker.start( config )
      end
    end
    Process.waitall
  end
end

#statusObject



54
55
56
57
58
59
60
# File 'lib/sqs_image_processor/manager.rb', line 54

def status
  if SqsImageProcessor::ProcessManager.is_running?
    puts "Running with PID #{SqsImageProcessor::ProcessManager.get_pid}."
  else
    puts "Not running."
  end
end

#stopObject



48
49
50
# File 'lib/sqs_image_processor/manager.rb', line 48

def stop
  SqsImageProcessor::ProcessManager.kill
end