class Uc::Unicorn::Api
Attributes
original_env[R]
queue_name[RW]
run_id[R]
Public Class Methods
new(event_queue)
click to toggle source
# File lib/uc/unicorn/api.rb, line 17 def initialize(event_queue) @queue_name = event_queue @run_id = SecureRandom.hex(3) ::Uc::Logger.event_queue = queue_name end
Public Instance Methods
clean_env()
click to toggle source
# File lib/uc/unicorn/api.rb, line 77 def clean_env return if uc_config.config[:skip_clean_env] ENV.delete "BUNDLE_BIN_PATH" ENV.delete "RUBYLIB" ENV.delete "RUBYOPT" ENV.delete "GEM_HOME" ENV.delete "GEM_PATH" ENV.delete "BUNDLE_GEMFILE" ENV["PATH"] = cleaned_path end
cleaned_path()
click to toggle source
# File lib/uc/unicorn/api.rb, line 92 def cleaned_path paths = (ENV["PATH"] || "").split(File::PATH_SEPARATOR) paths.reject! { |x| x =~ /vendor\/bundle\/ruby/ } paths.uniq.join(File::PATH_SEPARATOR) end
end_run(worker)
click to toggle source
# File lib/uc/unicorn/api.rb, line 67 def end_run(worker) @init.end_run(worker) end
gradual_shutdown(server, worker)
click to toggle source
# File lib/uc/unicorn/api.rb, line 28 def gradual_shutdown(server, worker) gradual_shutdown = ::Uc::Unicorn::GradualShutdown.new(server, worker) gradual_shutdown.run end
init(server)
click to toggle source
# File lib/uc/unicorn/api.rb, line 23 def init(server) @init ||= ::Uc::Unicorn::Init.new(server) @init.run_once end
init_original_env()
click to toggle source
# File lib/uc/unicorn/api.rb, line 105 def init_original_env return if @original_env @original_env = ENV.to_h end
load_env()
click to toggle source
# File lib/uc/unicorn/api.rb, line 88 def load_env uc_config.load_env end
load_original_env()
click to toggle source
# File lib/uc/unicorn/api.rb, line 98 def load_original_env return if not @original_env.is_a? Hash # add unicorn specific environment vars like UNICORN_FD ENV.select { |k,v| k =~ /\AUNICORN_/ }.each { |k,v| @original_env[k] = v } ENV.replace(@original_env) end
on_exec_fail()
click to toggle source
# File lib/uc/unicorn/api.rb, line 71 def on_exec_fail event_stream = ::Uc::Logger.event_stream event_stream.close_connections event_stream.fatal "re-exec failed" end
oom_adjust()
click to toggle source
# File lib/uc/unicorn/api.rb, line 55 def oom_adjust pid = Process.pid oom_file = "/proc/#{pid}/oom_score_adj" File.open(oom_file,"w") do |f| f.write "800" end end
prestart(server, worker, **kwargs)
click to toggle source
# File lib/uc/unicorn/api.rb, line 33 def prestart(server, worker, **kwargs) prestart = ::Uc::Unicorn::Prestart.new(server, worker, **kwargs) prestart.run end
send_worker_ready(server, worker, **kwargs)
click to toggle source
# File lib/uc/unicorn/api.rb, line 38 def send_worker_ready(server, worker, **kwargs) ready_event = ::Uc::Unicorn::ReadyEvent.new(server, worker, **kwargs) ready_event.run_id = run_id ready_event.run end
uc_config()
click to toggle source
# File lib/uc/unicorn/api.rb, line 110 def uc_config @uc_config ||= ::Uc::Config.new(Dir.pwd) end
wait_for_worker_ready(server, worker, **kwargs)
click to toggle source
# File lib/uc/unicorn/api.rb, line 44 def wait_for_worker_ready(server, worker, **kwargs) ready_event_wait = ::Uc::Unicorn::ReadyWait.new(server, worker, **kwargs) ready_event_wait.run_id = run_id ready_event_wait.run end