Class: GoodJob::MultiScheduler
- Inherits:
-
Object
- Object
- GoodJob::MultiScheduler
- Defined in:
- lib/good_job/multi_scheduler.rb
Overview
Delegates the interface of a single Scheduler to multiple Schedulers.
Instance Attribute Summary collapse
-
#schedulers ⇒ Array<Scheduler>
readonly
List of the scheduler delegates.
Instance Method Summary collapse
-
#create_thread(state = nil) ⇒ Boolean?
Delegates to Scheduler#create_thread.
-
#initialize(schedulers) ⇒ MultiScheduler
constructor
A new instance of MultiScheduler.
-
#restart(timeout: -1)) ⇒ void
Delegates to Scheduler#restart.
-
#running? ⇒ Boolean?
Delegates to Scheduler#running?.
-
#shutdown(timeout: -1)) ⇒ void
Delegates to Scheduler#shutdown.
-
#shutdown? ⇒ Boolean?
Delegates to Scheduler#shutdown?.
Constructor Details
#initialize(schedulers) ⇒ MultiScheduler
Returns a new instance of MultiScheduler.
9 10 11 |
# File 'lib/good_job/multi_scheduler.rb', line 9 def initialize(schedulers) @schedulers = schedulers end |
Instance Attribute Details
#schedulers ⇒ Array<Scheduler> (readonly)
Returns List of the scheduler delegates.
6 7 8 |
# File 'lib/good_job/multi_scheduler.rb', line 6 def schedulers @schedulers end |
Instance Method Details
#create_thread(state = nil) ⇒ Boolean?
Delegates to Scheduler#create_thread.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/good_job/multi_scheduler.rb', line 42 def create_thread(state = nil) results = [] if state schedulers.any? do |scheduler| scheduler.create_thread(state).tap { |result| results << result } end else schedulers.each do |scheduler| results << scheduler.create_thread(state) end end if results.any? true elsif results.any?(false) false else # rubocop:disable Style/EmptyElse nil end end |
#restart(timeout: -1)) ⇒ void
This method returns an undefined value.
Delegates to Scheduler#restart.
35 36 37 |
# File 'lib/good_job/multi_scheduler.rb', line 35 def restart(timeout: -1) GoodJob._shutdown_all(schedulers, :restart, timeout: timeout) end |
#running? ⇒ Boolean?
Delegates to Scheduler#running?.
15 16 17 |
# File 'lib/good_job/multi_scheduler.rb', line 15 def running? schedulers.all?(&:running?) end |
#shutdown(timeout: -1)) ⇒ void
This method returns an undefined value.
Delegates to Scheduler#shutdown.
28 29 30 |
# File 'lib/good_job/multi_scheduler.rb', line 28 def shutdown(timeout: -1) GoodJob._shutdown_all(schedulers, timeout: timeout) end |
#shutdown? ⇒ Boolean?
Delegates to Scheduler#shutdown?.
21 22 23 |
# File 'lib/good_job/multi_scheduler.rb', line 21 def shutdown? schedulers.all?(&:shutdown?) end |