class WorkerKiller::Killer::Base
Attributes
config[RW]
kill_attempts[RW]
logger[RW]
Public Class Methods
new(logger: WorkerKiller.configuration.logger, **_kwargs)
click to toggle source
# File lib/worker_killer/killer.rb, line 7 def initialize(logger: WorkerKiller.configuration.logger, **_kwargs) @logger = logger @config = WorkerKiller.configuration @kill_attempts = 0 end
Public Instance Methods
do_kill(*_args)
click to toggle source
:nocov:
# File lib/worker_killer/killer.rb, line 26 def do_kill(*_args) raise 'Not Implemented' end
kill(start_time, **params)
click to toggle source
# File lib/worker_killer/killer.rb, line 13 def kill(start_time, **params) alive_sec = (Time.now - start_time).round @kill_attempts += 1 sig = :QUIT sig = :TERM if kill_attempts > config.quit_attempts sig = :KILL if kill_attempts > (config.quit_attempts + config.term_attempts) do_kill(sig, Process.pid, alive_sec, **params) end