Module: ActiveJob::EnqueueAfterTransactionCommit::ActiveJobMethods
- Defined in:
- lib/active_job/enqueue_after_transaction_commit.rb
Instance Method Summary collapse
-
#perform_all_later(*jobs) ⇒ Object
Ensures perform_all_later respects each job’s enqueue_after_transaction_commit configuration.
Instance Method Details
#perform_all_later(*jobs) ⇒ Object
Ensures perform_all_later respects each job’s enqueue_after_transaction_commit configuration. Jobs with enqueue_after_transaction_commit set to true are deferred and enqueued only after the transaction commits; other jobs are enqueued immediately. This ensures enqueuing timing matches the per-job setting.
15 16 17 18 19 20 21 |
# File 'lib/active_job/enqueue_after_transaction_commit.rb', line 15 def perform_all_later(*jobs) jobs.flatten! deferred_jobs, immediate_jobs = jobs.partition { |job| job.class.enqueue_after_transaction_commit } super(immediate_jobs) if immediate_jobs.any? ActiveRecord.after_all_transactions_commit { super(deferred_jobs) } if deferred_jobs.any? nil end |