我正在使用带有Sidekiq的Carrierwave-Backgrounder来处理用户图标。不幸的是,每次我更新User模型时,它都会触发CarrierWave :: Workers :: ProcessAsset来处理现有图像。有没有办法只在用户有图标或更改现有图标时才能运行后台运行?我已经尝试了一切......
user.rb
class User < ActiveRecord::Base
mount_uploader :icon, IconUploader
process_in_background :icon
icon_uploader.rb
class IconUploader < CarrierWave::Uploader::Base
include ::CarrierWave::Backgrounder::Delay
信息:使用带有选项
的redis:// localhost:6379/0引导Sidekiq 2.14.1 信息:在ruby 2.0.0p247(2013-06-27修订版41674)中运行 信息:开始处理,按Ctrl-C停止CarrierWave :: Workers :: ProcessAsset JID-f2c19a1e33e83be2dce31961 INFO:start CarrierWave :: Workers :: ProcessAsset JID-f2c19a1e33e83be2dce31961信息:完成:0.733秒 CarrierWave :: Workers :: ProcessAsset JID-a497e66f54609f76678db81a INFO:start CarrierWave :: Workers :: ProcessAsset JID-a497e66f54609f76678db81a信息:完成:0.32秒 CarrierWave :: Workers :: ProcessAsset JID-576dd9a036323e700e86860c信息:开始 CarrierWave :: Workers :: ProcessAsset JID-576dd9a036323e700e86860c信息:完成:0.588秒
答案 0 :(得分:1)
宝石去了,carrierwave-backgrounder非常简单。如果字段已“更新”,它们只会将作业排入队列,其中“updated”定义为满足以下任何条件:
1&amp;如果您通过作业更改头像,则适用2;如果您允许人们粘贴网址,则适用3;如果您在表单重新加载之间缓存更改,则适用4。
如果您完全确定没有这些情况,并且您仍然在每次保存时都看到工作,那么您可能希望在问题跟踪器上创建问题。