class GitLab::Monitor::Database::Base
An abstract class for interacting with DB
It takes a connection string (e.g. “dbname=test port=5432”)
Public Class Methods
connection_pool()
click to toggle source
# File lib/gitlab_monitor/database/base.rb, line 11 def self.connection_pool @connection_pool ||= Hash.new do |h, connection_string| h[connection_string] = ConnectionPool.new(size: 3, timeout: 5) do PG.connect(connection_string) end end end
new(args)
click to toggle source
# File lib/gitlab_monitor/database/base.rb, line 19 def initialize(args) @connection_string = args[:connection_string] end
Public Instance Methods
connection_pool()
click to toggle source
# File lib/gitlab_monitor/database/base.rb, line 27 def connection_pool self.class.connection_pool[@connection_string] end
run()
click to toggle source
# File lib/gitlab_monitor/database/base.rb, line 23 def run fail NotImplemented end
with_connection_pool() { |conn| ... }
click to toggle source
# File lib/gitlab_monitor/database/base.rb, line 31 def with_connection_pool connection_pool.with do |conn| begin yield conn rescue PG::UnableToSend => e conn.reset raise e end end end