Module: Procrastinator::Scheduler::ThreadedWorking
- Included in:
- DaemonWorking, WorkProxy
- Defined in:
- lib/procrastinator/scheduler.rb
Overview
Threaded work style
Defined Under Namespace
Classes: MultiIO
Constant Summary collapse
- PROG_NAME =
Program name. Used as default for pid file names and in logging.
'Procrastinator'
Instance Method Summary collapse
-
#threaded(timeout: nil) ⇒ Object
Work off jobs per queue, each in its own thread.
Instance Method Details
#threaded(timeout: nil) ⇒ Object
Work off jobs per queue, each in its own thread.
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/procrastinator/scheduler.rb', line 140 def threaded(timeout: nil) open_log shutdown_on_interrupt begin @threads = spawn_threads @logger.info "#{ PROG_NAME } running. Process ID: #{ Process.pid }" @threads.each do |thread| thread.join(timeout) end rescue StandardError => e thread_crash(e) ensure @logger&.info 'Halting worker threads...' shutdown! @logger&.info 'Threads halted.' end end |