我在我的应用中引入wicked_pdf
并且pdf结果的生成非常慢。
当使用瘦我时,我设法在很多分钟(超过10分钟)内获得具有正确内容的pdf,但缺少css和图像。
我现在切换到使用3名工作人员的独角兽,请求在60秒后失败。所以pdf生成根本不起作用。
这是独角兽的输出:
"***************\"/usr/local/bin/wkhtmltopdf\" -q \"file:////var/folders/hc/yp8ps4x54rg7clpzf7g6plwm0000gq/T/wicked_pdf20140123-25990-100u2wv.html\" \"/var/folders/hc/yp8ps4x54rg7clpzf7g6plwm0000gq/T/wicked_pdf_generated_file20140123-25990-1hakql5.pdf\" ***************"
E, [2014-01-23T15:45:03.391769 #25693] ERROR -- : worker=0 PID:25990 timeout (61s > 60s), killing
E, [2014-01-23T15:45:03.399291 #25693] ERROR -- : reaped #<Process::Status: pid 25990 SIGKILL (signal 9)> worker=0
I, [2014-01-23T15:45:03.399536 #25693] INFO -- : worker=0 spawning...
I, [2014-01-23T15:45:03.401747 #26013] INFO -- : worker=0 spawned pid=26013
I, [2014-01-23T15:45:03.402179 #26013] INFO -- : Refreshing Gem list
I, [2014-01-23T15:45:06.113099 #26013] INFO -- : worker=0 ready
我的show controller看起来像这样:
respond_to do |format|
format.html # show.html.erb
format.json { render json: @item }
format.pdf do
render pdf: "#{current_user.username.dehumanize}_item_#{@item.id}"
end
end
我已将show.pdf.haml
缩减为:
%html
%head
%body
#wrapper
.top_wrapper
%header.top-header.border
.container
.row-fluid.header
logo
.span2
logo2
.container
.row-fluid
.body-wrapper
.container
.row
.span4
%h4 Comments
.row
.span9
%footer
答案 0 :(得分:1)
我认为在将pdf创建为临时文件后问题是wkhtmltopdf
挂起。
我在wkhtmltopdf
的问题中进行了检查,发现这是一个古老的已知问题,但仍未解决。
没有此问题的最后一个工作版本是0.9.9
。
这里是通过brew安装它的说明:
Why does PDFKit/wkhtmltopdf hang but renders PDF as expected when Rails app is killed?
这是wkhtmltopdf上找到的问题的链接:
答案 1 :(得分:0)
wicked_pdf 太慢,麻烦很多。 我用这个漂亮的宝石代替了它:https://github.com/Studiosity/grover .