Class: AwsSqsMoniter::Middleware::Server::ActiveRecord::Transaction

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

Constant Summary collapse

RETRIER_OPTIONS =
%i(tries sleep on_retriable_error)
TRANSACTION_OPTIONS =
%i(requires_new joinable isolation)

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Transaction

Returns a new instance of Transaction.



11
12
13
14
# File 'lib/aws_sqs_moniter/middleware/server/active_record/transaction.rb', line 11

def initialize options = {}
  @transaction_options = options.select { |k, _| TRANSACTION_OPTIONS.include? k }
  @retrier_default_options = options.select { |k, _| RETRIER_OPTIONS.include? k }
end

Instance Method Details

#call(worker, _queue, _sqs_msg, _body) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/aws_sqs_moniter/middleware/server/active_record/transaction.rb', line 16

def call worker, _queue, _sqs_msg, _body
  Retrier.new(retrier_options(worker)).call do
    ::ActiveRecord::Base.transaction(@transaction_options) do
      yield
    end
  end
end