Sha256: 2132d46a27d2288a7020df5f8adf7c093c5059565a29d924db94b24514e1a516

Contents?: true

Size: 859 Bytes

Versions: 11

Compression:

Stored size: 859 Bytes

Contents

module CassandraObject
  module AdapterExtension
    def execute(*args)
      retries = 0
      begin
        super
      rescue Cassandra::Errors::NoHostsAvailable, Cassandra::Errors::IOError, Cassandra::Errors::ClientError => e
        @connection = nil
        retries += 1
        retries < 10 ? retry : raise(e)
      end
    end

    def execute_async(*args)
      retries = 0
      begin
        super
      rescue Cassandra::Errors::NoHostsAvailable, Cassandra::Errors::IOError, Cassandra::Errors::ClientError => e
        @connection = nil
        retries += 1
        sleep 0.1
        retries < 10 ? retry : raise(e)
      end
    end
  end

  module Adapters
    class CassandraAdapter < AbstractAdapter
      prepend AdapterExtension
    end
    class CassandraSchemalessAdapter < AbstractAdapter
      prepend AdapterExtension
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
extendi-cassandra_object-1.1.1 lib/initializers/reconnection.rb
extendi-cassandra_object-1.1.0 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.20 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.19 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.18 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.17 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.16 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.15 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.14 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.13 lib/initializers/reconnection.rb
extendi-cassandra_object-1.0.12 lib/initializers/reconnection.rb