Я использую carrierwave
и carrierwave_backgrounder
для хранения изображений на S3, но переместите обработку изображений отдельному работнику. Моя цель - использовать встроенную очередь ActiveJob для обработки изображений сразу при запуске локально и использовать Sidekiq при производстве.undefined method `enqueue_active_job 'для CarrierWave :: Backgrounder: Module)
Я работаю со следующим кодом:
// models/user.rb class User < ActiveRecord::Base ... mount_uploader :cover_photo, CoverPhotoUploader process_in_background :cover_photo ... end
// uploaders/cover_photo_uploader.rb class CoverPhotoUploader < ImageUploader include CarrierWave::MiniMagick include ::CarrierWave::Backgrounder::Delay version :mobile do process resize_to_limit: [380,nil] end end
// config/initializers/carrierwave_backgrounder.rb CarrierWave::Backgrounder.configure do |c| c.backend :active_job, queue: :carrierwave end
При попытке загрузить изображение, я получаю:
NoMethodError (undefined method 'enqueue_active_job' for CarrierWave::Backgrounder:Module):
Я не уверен, как отлаживать это дальше. При переключении backgrounder
использовать sidekiq
в качестве бэкэнд, все работает нормально.