Sha256: 2eb8abd24719dcdab4639bd883805053c0ca0e7df6387d8f5d2f1a9c91f22185

Contents?: true

Size: 878 Bytes

Versions: 4

Compression:

Stored size: 878 Bytes

Contents

# encoding: utf-8
require 'cassandra'

module Corm
  module Retry
    module Policies
      class Default
        include Cassandra::Retry::Policy

        def read_timeout(_statement, consistency, _required, _received, retrieved, retries)
          return reraise if retries >= 5
          sleep(retries.to_f + Random.rand(0.0..1.0))
          retrieved ? reraise : try_again(consistency)
        end

        def write_timeout(_statement, consistency, _type, _required, _received, retries)
          return reraise if retries >= 5
          sleep(retries.to_f + Random.rand(0.0..1.0))
          try_again(consistency)
        end

        def unavailable(_statement, consistency, _required, _alive, retries)
          return reraise if retries >= 5
          sleep(retries.to_f + Random.rand(0.0..1.0))
          try_again(consistency)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
polipus-cassandra-0.1.4 lib/polipus-cassandra/policies/default.rb
polipus-cassandra-0.1.3 lib/polipus-cassandra/policies/default.rb
corm-0.0.27 lib/corm/retry/policies/default.rb
corm-0.0.26 lib/corm/retry/policies/default.rb