Class: AwsSqsMoniter::Middleware::Server::ActiveRecord::Retrier

Inherits:
Object
  • Object
show all
Defined in:
lib/aws_sqs_moniter/middleware/server/active_record/retrier.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Retrier

Returns a new instance of Retrier.



8
9
10
# File 'lib/aws_sqs_moniter/middleware/server/active_record/retrier.rb', line 8

def initialize(options = {})
  @options = { tries: 10, sleep: 0 }.merge options
end

Instance Method Details

#call(&block) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/aws_sqs_moniter/middleware/server/active_record/retrier.rb', line 12

def call(&block)
  Retryable.retryable(@options.merge(on: [::ActiveRecord::RecordNotUnique])) do
    Retryable.retryable(@options.merge(matching: /TRDeadlockDetected|TRSerializationFailure/)) do
      yield block
    end
  end
end