20 lines
599 B
Ruby
20 lines
599 B
Ruby
# frozen_string_literal: true
|
|
|
|
return unless Gitlab::Runtime.application?
|
|
return unless Gitlab::Utils.to_boolean(ENV['GITLAB_MEMORY_WATCHDOG_ENABLED'])
|
|
|
|
Gitlab::Cluster::LifecycleEvents.on_worker_start do
|
|
handler =
|
|
if Gitlab::Runtime.puma?
|
|
Gitlab::Memory::Watchdog::PumaHandler.new
|
|
elsif Gitlab::Runtime.sidekiq?
|
|
Gitlab::Memory::Watchdog::TermProcessHandler.new
|
|
else
|
|
Gitlab::Memory::Watchdog::NullHandler.instance
|
|
end
|
|
|
|
watchdog = Gitlab::Memory::Watchdog.new(
|
|
handler: handler, logger: Gitlab::AppLogger
|
|
)
|
|
Gitlab::BackgroundTask.new(watchdog).start
|
|
end
|