Class: Delayed::Master

Inherits:
Object
  • Object
show all
Defined in:
lib/delayed/master.rb,
lib/delayed/master/config.rb,
lib/delayed/master/forker.rb,
lib/delayed/master/worker.rb,
lib/delayed/master/command.rb,
lib/delayed/master/version.rb,
lib/delayed/master/signaler.rb,
lib/delayed/master/monitoring.rb,
lib/delayed/master/job_checker.rb,
lib/delayed/master/job_counter.rb,
lib/delayed/master/util/file_reopener.rb,
lib/delayed/master/plugins/memory_checker.rb,
lib/delayed/master/plugins/signal_handler.rb,
lib/delayed/master/plugins/status_notifier.rb

Defined Under Namespace

Modules: Plugins Classes: Command, Config, Forker, JobChecker, JobCounter, Monitoring, Signaler, Util, Worker

Constant Summary collapse

VERSION =
"2.0.2"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Master

Returns a new instance of Master.



14
15
16
17
18
19
20
21
# File 'lib/delayed/master.rb', line 14

def initialize(argv)
  @config = Command.new(argv).config
  @logger = setup_logger(@config.log_file, @config.log_level)
  @workers = []

  @signaler = Signaler.new(self)
  @monitoring = Monitoring.new(self)
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



12
13
14
# File 'lib/delayed/master.rb', line 12

def config
  @config
end

#loggerObject (readonly)

Returns the value of attribute logger.



12
13
14
# File 'lib/delayed/master.rb', line 12

def logger
  @logger
end

#workersObject (readonly)

Returns the value of attribute workers.



12
13
14
# File 'lib/delayed/master.rb', line 12

def workers
  @workers
end

Instance Method Details

#prepared?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/delayed/master.rb', line 38

def prepared?
  @prepared
end

#quitObject



42
43
44
45
# File 'lib/delayed/master.rb', line 42

def quit
  @signaler.dispatch(:KILL)
  @stop = true
end

#reopen_filesObject



56
57
58
59
60
61
# File 'lib/delayed/master.rb', line 56

def reopen_files
  @signaler.dispatch(:USR1)
  @logger.info "reopening files..."
  Util::FileReopener.reopen
  @logger.info "reopened"
end

#restartObject



63
64
65
66
67
# File 'lib/delayed/master.rb', line 63

def restart
  @signaler.dispatch(:USR2)
  @logger.info "restarting master..."
  exec(*([$0] + ARGV))
end

#runObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/delayed/master.rb', line 23

def run
  print_config
  daemonize if @config.daemon

  @logger.info "started master #{Process.pid}".tap { |msg| puts msg }

  handle_pid_file do
    @signaler.register
    @prepared = true
    @monitoring.monitor_while { stop? }
  end

  @logger.info "shut down master"
end

#stopObject



47
48
49
50
# File 'lib/delayed/master.rb', line 47

def stop
  @signaler.dispatch(:TERM)
  @stop = true
end

#stop?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/delayed/master.rb', line 52

def stop?
  @stop == true
end