从 attachment_fu 到 Carrierwave 的多任务转换
Multitasked conversion from attachment_fu to 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
看看 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
`
我有一个 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
看看 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
`