if File.directory?("#{Rails.root}/public/barcodes") == false
system 'mkdir', '-p', "#{Rails.root}/public/barcodes"
end
Parallel.each((1000000000001..1000000001000).to_a, in_processes: 10) do |barcode_number|
barcode = Barby::Code128B.new(barcode_number)
File.open("#{Rails.root}/public/barcodes/#{barcode_number}.png", 'wb'){ |f|
f.write barcode.to_png(height: 50, xdim: 2, margin: 2)
}
Barcode.create(member_id: barcode_number.to_s, barcode_image: File.open("#{Rails.root}/public/barcodes/#{barcode_number}.png"))
end
FileUtils.rm_f Dir.glob("#{Rails.root}/public/barcodes/*")
以上是我生成条形码并存储到AWS S3服务器的代码。
根据我的要求,该功能正常运行。 如果我生成1000个条形码,则需要60到70秒。
现在,我想优化时间,我希望在不到20秒的时间内存储1000个条形码。那我该怎么做呢?