0
Я звоню ExampleJob.perform_later
в действии. Эта работа, в свою очередь, вызывает два других задания (см. Ниже).Если рабочие места в рамках рабочих мест используют perform_later или выполняют
Должны ли они также иметь метод perform_later
или perform
или это не имеет значения?
class ExampleJob < ApplicationJob
queue_as :default
def perform(*args)
Example2Job.perform_later
Example3Job.perform_later
end
end
Так что, несмотря на то, что инкапсулирующее задание имеет 'perform_later', два вложенных задания будут превзойти это, и задания будут выполняться синхронно? –
Нет, нет. Задание инкапсуляции будет выполняться async, вопрос в том, хотите ли вы, чтобы ваши вложенные задания выполнялись встроенными в один поток/процесс, как инкапсулирующее задание, или вы хотите, чтобы они выполнялись отдельно. –
Хорошо, я его получаю. Поэтому 'perform_later' звучит как наиболее рекомендуемый. –