class Epi::Daemon::Responders::Job
Attributes
id[RW]
instruction[RW]
Public Instance Methods
run()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 8 def run Jobs.beat! raise Exceptions::Fatal, 'Unknown job ID' unless Epi::Job === job case instruction when /^\d+$/ then set instruction.to_i when /^(\d+ )?(more|less)$/ then __send__ $2, ($1 || 1).to_i else __send__ instruction end end
Private Instance Methods
job()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 20 def job @job ||= Jobs[id] end
less(decrease)
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 38 def less(decrease) set job.expected_count - decrease end
max()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 42 def max set job.allowed_processes.max end
min()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 46 def min set job.allowed_processes.min end
more(increase)
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 34 def more(increase) set job.expected_count + increase end
pause()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 50 def pause set 0 end
restart()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 59 def restart count = job.expected_count raise Exceptions::Fatal, 'This job has no processes to restart' if count == 0 job.restart! "Replacing #{count} '#{job.name}' process#{count != 1 ? 'es' : ''}" end
resume()
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 54 def resume set job.job_description.initial_processes end
Also aliased as: reset
set(count)
click to toggle source
# File lib/epi/daemon/responders/job.rb, line 24 def set(count) allowed = job.allowed_processes raise Exceptions::Fatal, "Requested count #{count} is outside allowed range #{allowed}" unless allowed === count original = job.expected_count raise Exceptions::Fatal, "Already running #{count} process#{count != 1 ? 'es' : ''}" unless original != count job.expected_count = count job.sync! "#{count < original ? 'De' : 'In'}creasing '#{job.name}' processes by #{(original - count).abs} (from #{original} to #{count})" end