【问题标题】:Multitasked conversion from attachment_fu to Carrierwave从 attachment_fu 到 Carrierwave 的多任务转换
【发布时间】:2015-12-03 10:49:28
【问题描述】:

我有一个 rake 任务将我的照片从 attachment_fu 转换为 Carrierwave。

有没有办法并行运行任务:convert 以加快速度?

这是我的工作任务:

namespace :photos do
  task :convert => :environment do
    Item.all.each do |item|
      item.photos.each do |photo|
        new_photo = ItemPhoto.new :photo => File.open(File.join(Rails.root, "public", photo.public_filename)),
                                  :item_id => item.id

        new_photo.save
      end
      item.update_attribute :migrated, true
    end     
  end
end

【问题讨论】:

    标签: ruby ruby-on-rails-4 carrierwave rake-task attachment-fu


    【解决方案1】:

    看看parallel gem

    8 个并发进程可能如下所示:

    namespace :photos do
      task :convert => :environment do
        Parallel.each(Item.all, :in_processes => 8) do |item|
           item.photos.each do |photo|
              new_photo = ItemPhoto.new :photo => File.open(File.join(Rails.root, "public", photo.public_filename)),
                                  :item_id => item.id
    
              new_photo.save
           end
           item.update_attribute :migrated, true
        end
      end
    end
    

    `

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多