gitlab-org--gitlab-foss/lib/gitlab/database/postgresql_adapter/force_disconnectable_mixin.rb

31 lines
702 B
Ruby

# frozen_string_literal: true
module Gitlab
module Database
module PostgresqlAdapter
module ForceDisconnectableMixin
extend ActiveSupport::Concern
prepended do
set_callback :checkin, :after, :force_disconnect_if_old!
end
def force_disconnect_if_old!
if force_disconnect_timer.expired?
disconnect!
reset_force_disconnect_timer!
end
end
def reset_force_disconnect_timer!
force_disconnect_timer.reset!
end
def force_disconnect_timer
@force_disconnect_timer ||= ::Gitlab::Database::ConnectionTimer.starting_now
end
end
end
end
end