Sha256: 17fb36234067dc35d2f8fcece3d7e68daaff3c04bc9d389718d004d72653ca70

Contents?: true

Size: 901 Bytes

Versions: 1

Compression:

Stored size: 901 Bytes

Contents

module CassandraObject
  ###
  # Force reconnection in test
  ##
  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

1 entries across 1 versions & 1 rubygems

Version Path
extendi-cassandra_object-1.0.11 test/support/reconnection.rb