Spec-Zone.ru › Ruby on Rails 8.1

module ActiveJob::EnqueueAfterTransactionCommit::ActiveJobMethods

Открытые методы экземпляра

perform_all_later (*jobs) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API