如何快速生成条形码

时间:2016-08-09 13:20:39

标签: ruby-on-rails ruby ruby-on-rails-4 amazon-s3 parallel-processing

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个条形码。那我该怎么做呢?

0 个答案:

没有答案