diff options
Diffstat (limited to 'config/initializers/forbid_sidekiq_in_transactions.rb')
-rw-r--r-- | config/initializers/forbid_sidekiq_in_transactions.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/config/initializers/forbid_sidekiq_in_transactions.rb b/config/initializers/forbid_sidekiq_in_transactions.rb index e5e17672c4e..2ea6c9a7343 100644 --- a/config/initializers/forbid_sidekiq_in_transactions.rb +++ b/config/initializers/forbid_sidekiq_in_transactions.rb @@ -20,7 +20,7 @@ module Sidekiq module NoEnqueueingFromTransactions %i(perform_async perform_at perform_in).each do |name| define_method(name) do |*args| - if !Sidekiq::Worker.skip_transaction_check && ApplicationRecord.inside_transaction? + if !Sidekiq::Worker.skip_transaction_check && inside_transaction? begin raise Sidekiq::Worker::EnqueueFromTransactionError, <<~MSG `#{self}.#{name}` cannot be called inside a transaction as this can lead to @@ -38,6 +38,12 @@ module Sidekiq super(*args) end end + + private + + def inside_transaction? + ::ApplicationRecord.inside_transaction? || ::Ci::ApplicationRecord.inside_transaction? + end end prepend NoEnqueueingFromTransactions |