【问题标题】:Rails Carrierwave Backgrounder and Sidekiq gems not workingRails Carrierwave Backgrounder 和 Sidekiq gem 不起作用
【发布时间】: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


    【解决方案1】:

    试试 sidekiq -qcarrierwave 您可以在其中指定要在开发中运行的队列。

    【讨论】:

    • 您可以执行类似 bundle exec sidekiq -C config/sidekiq.yml -q carrierwave 之类的操作,否则指定队列名称也会有所帮助
    猜你喜欢
    • 2016-08-03
    • 2013-10-03
    • 2012-09-10
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2018-08-29
    相关资源
    最近更新 更多