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