Sha256: 383163c423ea7477584728bf2ccb05fa81e666e6db3fb9f04295fe94c13b3b42
Contents?: true
Size: 849 Bytes
Versions: 7
Compression:
Stored size: 849 Bytes
Contents
module Houston def self.try(options, *rescue_from) options = { max_tries: options } if options.is_a?(Fixnum) options = {} unless options.is_a?(Hash) max_tries = options.fetch :max_tries, 3 base = options.fetch :base, 2 ignore = options.fetch :ignore, false tries = 1 begin yield tries rescue *rescue_from unless (tries += 1) <= max_tries return if ignore raise end Rails.logger.warn "\e[31m[try] \e[1m#{$!.class}\e[0;31m: #{$!.message}\e[0m" sleep base ** tries retry end end def self.reconnect(options={}) max_tries = options.fetch(:max_tries, 2) tries = 1 begin yield rescue exceptions_wrapping(PG::ConnectionBad) ActiveRecord::Base.connection.reconnect! retry unless (tries += 1) > 2 raise end end end
Version data entries
7 entries across 7 versions & 1 rubygems