module PumaWorkerKiller

Constants

VERSION

Attributes

frequency[RW]
on_calculation[RW]
percent_usage[RW]
pre_term[RW]
ram[RW]
reaper_status_logs[RW]
rolling_pre_term[RW]
rolling_restart_frequency[RW]
rolling_restart_splay_seconds[RW]

Public Instance Methods

config() { |self| ... } click to toggle source
# File lib/puma_worker_killer.rb, line 22
def config
  yield self
end
enable_rolling_restart(frequency = rolling_restart_frequency, splay_seconds = rolling_restart_splay_seconds) click to toggle source
# File lib/puma_worker_killer.rb, line 35
def enable_rolling_restart(frequency = rolling_restart_frequency,
                           splay_seconds = rolling_restart_splay_seconds)
  # Randomize so all workers don't restart at the exact same time across multiple machines.
  frequency += rand(splay_seconds)
  AutoReap.new(frequency, RollingRestart.new(nil, rolling_pre_term)).start
end
reaper(ram = self.ram, percent_usage = self.percent_usage, reaper_status_logs = self.reaper_status_logs, pre_term = self.pre_term, on_calculation = self.on_calculation) click to toggle source
# File lib/puma_worker_killer.rb, line 26
def reaper(ram = self.ram, percent_usage = self.percent_usage, reaper_status_logs = self.reaper_status_logs, pre_term = self.pre_term, on_calculation = self.on_calculation)
  Reaper.new(ram * percent_usage, nil, reaper_status_logs, pre_term, on_calculation)
end
start(frequency = self.frequency, reaper = self.reaper) click to toggle source
# File lib/puma_worker_killer.rb, line 30
def start(frequency = self.frequency, reaper = self.reaper)
  AutoReap.new(frequency, reaper).start
  enable_rolling_restart(rolling_restart_frequency) if rolling_restart_frequency
end