Ruby on rails Prawn PDF导致heroku rails应用程序内存膨胀
每当我生成对虾PDF时,我的Heroku Rails应用程序内存就会膨胀。我为每一代使用以下代码。 使用: Ruby 2.5.3 对虾2.2.2 虾表0.2.2Ruby on rails Prawn PDF导致heroku rails应用程序内存膨胀,ruby-on-rails,email,pdf,heroku,memory,Ruby On Rails,Email,Pdf,Heroku,Memory,每当我生成对虾PDF时,我的Heroku Rails应用程序内存就会膨胀。我为每一代使用以下代码。 使用: Ruby 2.5.3 对虾2.2.2 虾表0.2.2 pdf = InvoicePdf.new(hash) send_data pdf.render, filename: "receipt_#{order_id}.pdf" 在我的邮件中,作为附件: pdf = InvoicePdf.new(hash) t = Tempfile.create do |f| pdf.render_fil
pdf = InvoicePdf.new(hash)
send_data pdf.render, filename: "receipt_#{order_id}.pdf"
在我的邮件中,作为附件:
pdf = InvoicePdf.new(hash)
t = Tempfile.create do |f|
pdf.render_file f
f.flush
File.read(f)
end
attachments["receipt.pdf"] = t if t
上述代码源于此:
这两种方法都会导致内存膨胀。我见过的唯一解决方案是使用AWS/cloudinary来存储pdf。我只会使用pdf两次,没有时间压力,所以这似乎是一种浪费。有什么想法吗
我在开机时没有内存问题
谢谢,
盖伊以防将来有人看到这一点——Ruby GC看起来是一团糟。简单地取消对pdf=nil的引用就可以确保它是垃圾收集的 以防将来有人看到这一点——Ruby GC看起来是一团糟。简单地取消对pdf=nil的引用就可以确保它是垃圾收集的 副本的副本