【发布时间】:2017-02-24 18:33:30
【问题描述】:
我想在后台处理将documentdoc's(files) 上传到 S3,但由于某种原因,它对我不起作用。我目前正在本地运行。
这是我的设置:
class DocUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
include CarrierWave::MiniMagick
include ::CarrierWave::Backgrounder::Delay
# Choose what kind of storage to use for this uploader:
storage :fog
end
# /config/initializers/carrierwave_backgrounder.rb
CarrierWave::Backgrounder.configure do |c|
c.backend :sidekiq, queue: :carrierwave
end
#documents_controller.rb
def document_params
params.require(:document).permit(
..., :doc, :doc_tmp, :remove_doc, ...
)
end
#sidekiq.yml
---
:queues:
- [default,5]
- [carrierwave,5]
我使用以下命令运行sidekiq:
bundle exec sidekiq
当我尝试使用以下设置为 document 上传 doc 时:(store_in_background)
# doc :string
# doc_processing :boolean default(FALSE), not null
# doc_tmp :string
class Document < ActiveRecord::Base
mount_uploader :doc, DocUploader
store_in_background :doc
# process_in_background :doc
attr_accessor :doc_tmp
end
它似乎没有在 sidekiq 的后台排队任何作业,并且 doc 保存是在进程中完成的,需要很长时间。
有什么建议吗?
【问题讨论】:
标签: ruby-on-rails carrierwave sidekiq carrierwave-backgrounder