Sha256: 4eb65a40a2a66311029e12f6723974543f8e7a1de19b2b00d601c1d891fd2c65
Contents?: true
Size: 1019 Bytes
Versions: 5
Compression:
Stored size: 1019 Bytes
Contents
module Massive module Retry extend ActiveSupport::Concern included do retry_interval 2 maximum_retries 10 def self.inherited(base) super base.retry_interval retry_interval base.maximum_retries maximum_retries end end def retrying(&block) self.retries = 0 begin block.call rescue Massive::Cancelled, SignalException # re-raise cancelled and signal exceptions since they are not an actual error raise rescue StandardError => e self.retries += 1 if self.retries < self.class.maximum_retries Kernel.sleep self.class.retry_interval retry else raise e end end end module ClassMethods def retry_interval(value=nil) @retry_interval = value if value @retry_interval end def maximum_retries(value=nil) @maximum_retries = value if value @maximum_retries end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
massive-0.4.0 | lib/massive/retry.rb |
massive-0.3.0 | lib/massive/retry.rb |
massive-0.2.0 | lib/massive/retry.rb |
massive-0.1.1 | lib/massive/retry.rb |
massive-0.1.0 | lib/massive/retry.rb |