制作PDF时,独角兽的wicked_pdf超时

时间:2014-01-23 14:53:29

标签: html ruby-on-rails pdf wicked-pdf

我在我的应用中引入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

2 个答案:

答案 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上找到的问题的链接:

https://code.google.com/p/wkhtmltopdf/issues/detail?id=141

答案 1 :(得分:0)

wicked_pdf 太慢,麻烦很多。 我用这个漂亮的宝石代替了它:https://github.com/Studiosity/grover .