Я сконфигурировал Delayed::Paperclip для обработки вложений скрепки в фоновом режиме. Я установил и настроил Resque и в соответствии с README, Resque теперь должен выполнять фоновые задачи:delayed_paperclip использует ActiveJob вместо Resque
Убедитесь, что у вас есть Resque и работает. Работы будут отправлены в: paperclip queue, так что вы можете правильно отправить своего рабочего . Настройте resque и ваши рабочие точно так же, как и в случае .
Однако, Active Job, другая структура для выполнения фоновых задач, устанавливается как зависимость для Rails 4.1/ActionMailer, и она «крадет» задачу из Resque.
[ActiveJob] Enqueued DelayedPaperclip::Jobs::ActiveJob (Job ID: ba60f576-e544-4f53-8db2-eb0085f1f653) to Inline(paperclip) with arguments: "Photo", 79, "picture"
Проблема заключается в том, что активное задание, кажется, сразу работает в том же потоке, - в основном это не работает в фоновом режиме на всех.
Я проверил код отложенной :: Скрепки и, кажется, есть приоритет установленных движков:
def detect_background_task
return DelayedPaperclip::Jobs::ActiveJob if defined? ::ActiveJob::Base
return DelayedPaperclip::Jobs::DelayedJob if defined? ::Delayed::Job
return DelayedPaperclip::Jobs::Resque if defined? ::Resque
return DelayedPaperclip::Jobs::Sidekiq if defined? ::Sidekiq
end
Когда я включил их вокруг и положил Resque сверху, она работает. Приоритет кажется жестким, но я полагаю, что я не могу быть единственным с этой проблемой, если это так. Это ошибка, или я чего-то не хватает?
Есть ли какие-либо новости о том, что вызывало ActiveJob для немедленного запуска? –
@NoahPassalacqua Да, это (или было?) Поведение по умолчанию. Попробуйте изменить queue_adapter (см. Ответ ниже) –