module ActiveJob::EnqueueAfterTransactionCommit::ActiveJobMethods
Открытые методы экземпляра
# File activejob/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 Гарантирует, что perform_all_later учитывает настройку enqueue_after_transaction_commit каждой задачи. Задачи, для которых значение enqueue_after_transaction_commit равно true, откладываются и ставятся в очередь только после фиксации транзакции; остальные задачи ставятся в очередь немедленно. Это гарантирует, что момент постановки в очередь соответствует настройке каждой задачи.
Вызывает метод суперкласса
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.