Sha256: 144fcb760f6a897ade654fb265e7bbc3642f57b9c4aa9a9867ea8ebb3845b736

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

module FreshConnection
  class AbstractConnectionManager
    EXCEPTION_MESSAGE_WHEN_SLAVE_SERVER_DOWN = [
      "MySQL server has gone away",
      "closed MySQL connection",
      "Can't connect to local MySQL server"
    ].map{|msg| Regexp.escape(msg)}.join("|")

    private_constant :EXCEPTION_MESSAGE_WHEN_SLAVE_SERVER_DOWN

    attr_reader :slave_group

    def initialize(slave_group = "slave")
      @mutex = Mutex.new
      @slave_group = slave_group.to_s
      @slave_group = "slave" if @slave_group.empty?
    end

    def slave_connection
    end
    undef_method :slave_connection

    def clear_all_connections!
    end
    undef_method :clear_all_connections!

    def put_aside!
    end
    undef_method :put_aside!

    def recovery(failure_connection, exception)
    end
    undef_method :recovery

    private

    def synchronize
      @mutex.synchronize{ yield }
    end

    def current_thread_id
      Thread.current.object_id
    end

    def slave_down_message?(message)
      /#{EXCEPTION_MESSAGE_WHEN_SLAVE_SERVER_DOWN}/o === message
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fresh_connection-0.4.4 lib/fresh_connection/abstract_connection_manager.rb
fresh_connection-1.0.1 lib/fresh_connection/abstract_connection_manager.rb
fresh_connection-1.0.0 lib/fresh_connection/abstract_connection_manager.rb
fresh_connection-0.4.3 lib/fresh_connection/abstract_connection_manager.rb
fresh_connection-0.4.2 lib/fresh_connection/abstract_connection_manager.rb
fresh_connection-0.4.1 lib/fresh_connection/abstract_connection_manager.rb