从attachment_fu到Carrierwave的多任务转换



我有一个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

看看平行宝石

对于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

`

相关内容

  • 没有找到相关文章

最新更新