Sha256: 17682e2be28858ab41afa3bdaaaee86f8fc60a01d5a1568529c8b6de0b1943a3

Contents?: true

Size: 842 Bytes

Versions: 1

Compression:

Stored size: 842 Bytes

Contents

require "makara"
require "distribute_reads/appropriate_pool"
require "distribute_reads/global_methods"
require "distribute_reads/version"

module DistributeReads
  class TooMuchLag < StandardError; end

  class << self
    attr_accessor :default_to_primary
  end
  self.default_to_primary = true

  def self.lag
    conn = ActiveRecord::Base.connection
    if %w(PostgreSQL PostGIS).include?(conn.adapter_name)
      conn.execute("SELECT EXTRACT(EPOCH FROM NOW() - pg_last_xact_replay_timestamp()) AS lag").first["lag"].to_f
    else
      raise "Option not supported with this adapter"
    end
  end
end

Makara::Proxy.send :prepend, DistributeReads::AppropriatePool
Object.send :include, DistributeReads::GlobalMethods

ActiveSupport.on_load(:active_job) do
  require "distribute_reads/job_methods"
  extend DistributeReads::JobMethods
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
distribute_reads-0.1.1 lib/distribute_reads.rb