Class: DelayedJobWorkerPool::WorkerPool
- Inherits:
-
Object
- Object
- DelayedJobWorkerPool::WorkerPool
- Defined in:
- lib/delayed_job_worker_pool/worker_pool.rb
Constant Summary collapse
- SIGNALS =
['TERM', 'INT'].map(&:freeze).freeze
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ WorkerPool
constructor
A new instance of WorkerPool.
- #run ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ WorkerPool
Returns a new instance of WorkerPool.
5 6 7 8 9 10 11 12 |
# File 'lib/delayed_job_worker_pool/worker_pool.rb', line 5 def initialize( = {}) = @worker_pids = [] @pending_signals = [] @pending_signal_read_pipe, @pending_signal_write_pipe = create_pipe(inheritable: false) @master_alive_read_pipe, @master_alive_write_pipe = create_pipe(inheritable: true) self.shutting_down = false end |
Instance Method Details
#run ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/delayed_job_worker_pool/worker_pool.rb', line 14 def run log("Starting master #{Process.pid}") install_signal_handlers if preload_app? load_app invoke_callback(:after_preload_app) end log_uninheritable_threads num_workers.times { fork_worker } monitor_workers exit ensure master_alive_write_pipe.close if master_alive_write_pipe master_alive_read_pipe.close if master_alive_read_pipe end |