У меня есть SchedulerJob
:
class SchedulerJob < ActiveJob::Base
queue_as :scheduler
def perform
logger.debug("Start")
DelayedJob.set(wait: 10.seconds).perform_later
logger.debug("After Job 1")
DelayedJob.set(wait: 20.seconds).perform_later
logger.debug("After Job 2")
DelayedJob.set(wait: 30.seconds).perform_later
logger.debug("End")
end
end
и DelayedJob
:
class DelayedJob < ActiveJob::Base
queue_as :delayed_jobs
def perform
puts "I'm done"
end
end
Если я позвоню SchedulerJob.new.perform
, задание выполняется всего за несколько миллисекунд. Если я позвоню SchedulerJob.perform_later
, чтобы запустить задание в Сидекике, это займет около 90 секунд, и, просматривая журналы, я могу сказать, что каждый из этих вызовов .perform_later
занимает около 30 секунд каждый.
Почему это случилось?