Class: Delayed::Master::Core
- Inherits:
-
Object
- Object
- Delayed::Master::Core
- Defined in:
- lib/delayed/master/core.rb
Instance Attribute Summary collapse
-
#callbacks ⇒ Object
readonly
Returns the value of attribute callbacks.
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#databases ⇒ Object
readonly
Returns the value of attribute databases.
-
#job_checker ⇒ Object
readonly
Returns the value of attribute job_checker.
-
#job_listener ⇒ Object
readonly
Returns the value of attribute job_listener.
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#monitoring ⇒ Object
readonly
Returns the value of attribute monitoring.
-
#workers ⇒ Object
readonly
Returns the value of attribute workers.
Instance Method Summary collapse
- #graceful_stop ⇒ Object
-
#initialize(argv) ⇒ Core
constructor
A new instance of Core.
- #prepared? ⇒ Boolean
- #quit ⇒ Object
- #reopen_files ⇒ Object
- #restart ⇒ Object
- #run ⇒ Object
- #shutdown ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
- #stop? ⇒ Boolean
- #wait ⇒ Object
Constructor Details
#initialize(argv) ⇒ Core
Returns a new instance of Core.
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/delayed/master/core.rb', line 22 def initialize(argv) @config = Command.new(argv).config @logger = setup_logger(@config.log_file, @config.log_level) @workers = SafeArray.new @databases = Database.all(@config.databases) @callbacks = Callbacks.new(@config) @monitoring = Monitoring.new(self) @job_checker = JobChecker.new(self) @job_listener = JobListener.klass.new(self) @signaler = Signaler.new(self) end |
Instance Attribute Details
#callbacks ⇒ Object (readonly)
Returns the value of attribute callbacks.
19 20 21 |
# File 'lib/delayed/master/core.rb', line 19 def callbacks @callbacks end |
#config ⇒ Object (readonly)
Returns the value of attribute config.
19 20 21 |
# File 'lib/delayed/master/core.rb', line 19 def config @config end |
#databases ⇒ Object (readonly)
Returns the value of attribute databases.
19 20 21 |
# File 'lib/delayed/master/core.rb', line 19 def databases @databases end |
#job_checker ⇒ Object (readonly)
Returns the value of attribute job_checker.
20 21 22 |
# File 'lib/delayed/master/core.rb', line 20 def job_checker @job_checker end |
#job_listener ⇒ Object (readonly)
Returns the value of attribute job_listener.
20 21 22 |
# File 'lib/delayed/master/core.rb', line 20 def job_listener @job_listener end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
19 20 21 |
# File 'lib/delayed/master/core.rb', line 19 def logger @logger end |
#monitoring ⇒ Object (readonly)
Returns the value of attribute monitoring.
20 21 22 |
# File 'lib/delayed/master/core.rb', line 20 def monitoring @monitoring end |
#workers ⇒ Object (readonly)
Returns the value of attribute workers.
19 20 21 |
# File 'lib/delayed/master/core.rb', line 19 def workers @workers end |
Instance Method Details
#graceful_stop ⇒ Object
89 90 91 92 |
# File 'lib/delayed/master/core.rb', line 89 def graceful_stop @signaler.dispatch(:TERM) @stop = true end |
#prepared? ⇒ Boolean
71 72 73 |
# File 'lib/delayed/master/core.rb', line 71 def prepared? @prepared end |
#quit ⇒ Object
75 76 77 78 79 80 |
# File 'lib/delayed/master/core.rb', line 75 def quit @signaler.dispatch(:KILL) shutdown @workers.clear @stop = true end |
#reopen_files ⇒ Object
98 99 100 101 102 103 |
# File 'lib/delayed/master/core.rb', line 98 def reopen_files @signaler.dispatch(:USR1) @logger.info { "reopening files..." } FileReopener.reopen @logger.info { "reopened" } end |
#restart ⇒ Object
105 106 107 108 109 |
# File 'lib/delayed/master/core.rb', line 105 def restart @signaler.dispatch(:USR2) @logger.info { "restarting master..." } exec(*([$0] + ARGV)) end |
#run ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/delayed/master/core.rb', line 35 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 start wait shutdown end @logger.info { "shut down master" } end |
#shutdown ⇒ Object
65 66 67 68 69 |
# File 'lib/delayed/master/core.rb', line 65 def shutdown @job_checker.shutdown @job_listener.shutdown @monitoring.shutdown end |
#start ⇒ Object
53 54 55 56 57 |
# File 'lib/delayed/master/core.rb', line 53 def start @job_checker.start @job_listener.start @monitoring.start end |
#stop ⇒ Object
82 83 84 85 86 87 |
# File 'lib/delayed/master/core.rb', line 82 def stop @signaler.dispatch(:TERM) shutdown @workers.clear @stop = true end |
#stop? ⇒ Boolean
94 95 96 |
# File 'lib/delayed/master/core.rb', line 94 def stop? @stop == true end |
#wait ⇒ Object
59 60 61 62 63 |
# File 'lib/delayed/master/core.rb', line 59 def wait @job_checker.wait @job_listener.wait @monitoring.wait end |