default.rb 878 B

123456789101112131415161718192021222324252627282930
  1. # encoding: utf-8
  2. require 'cassandra'
  3. module Corm
  4. module Retry
  5. module Policies
  6. class Default
  7. include Cassandra::Retry::Policy
  8. def read_timeout(_statement, consistency, _required, _received, retrieved, retries)
  9. return reraise if retries >= 5
  10. sleep(retries.to_f + Random.rand(0.0..1.0))
  11. retrieved ? reraise : try_again(consistency)
  12. end
  13. def write_timeout(_statement, consistency, _type, _required, _received, retries)
  14. return reraise if retries >= 5
  15. sleep(retries.to_f + Random.rand(0.0..1.0))
  16. try_again(consistency)
  17. end
  18. def unavailable(_statement, consistency, _required, _alive, retries)
  19. return reraise if retries >= 5
  20. sleep(retries.to_f + Random.rand(0.0..1.0))
  21. try_again(consistency)
  22. end
  23. end
  24. end
  25. end
  26. end