class Puppet::Scheduler::Scheduler
Public Class Methods
new(timer=Puppet::Scheduler::Timer.new)
click to toggle source
# File lib/puppet/scheduler/scheduler.rb 3 def initialize(timer=Puppet::Scheduler::Timer.new) 4 @timer = timer 5 end
Public Instance Methods
run_loop(jobs)
click to toggle source
# File lib/puppet/scheduler/scheduler.rb 7 def run_loop(jobs) 8 mark_start_times(jobs, @timer.now) 9 while not enabled(jobs).empty? 10 @timer.wait_for(min_interval_to_next_run_from(jobs, @timer.now)) 11 run_ready(jobs, @timer.now) 12 end 13 end
Private Instance Methods
enabled(jobs)
click to toggle source
# File lib/puppet/scheduler/scheduler.rb 17 def enabled(jobs) 18 jobs.select(&:enabled?) 19 end
mark_start_times(jobs, start_time)
click to toggle source
# File lib/puppet/scheduler/scheduler.rb 21 def mark_start_times(jobs, start_time) 22 jobs.each do |job| 23 job.start_time = start_time 24 end 25 end
min_interval_to_next_run_from(jobs, from_time)
click to toggle source
# File lib/puppet/scheduler/scheduler.rb 27 def min_interval_to_next_run_from(jobs, from_time) 28 enabled(jobs).map do |j| 29 j.interval_to_next_from(from_time) 30 end.min 31 end
run_ready(jobs, at_time)
click to toggle source
# File lib/puppet/scheduler/scheduler.rb 33 def run_ready(jobs, at_time) 34 enabled(jobs).each do |j| 35 # This check intentionally happens right before each run, 36 # instead of filtering on ready schedulers, since one may adjust 37 # the readiness of a later one 38 if j.ready?(at_time) 39 j.run(at_time) 40 end 41 end 42 end