2014-01-23 41 views
1

我在我的应用程序中引入了wicked_pdf,并且生成的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 

我的节目控制器看起来是这样的:

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 

回答

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

+0

的链接问题上wkhtmltopdf发现不再有效。你知道这是否仍然是一个问题,或者是否已在最新版本中修复? – Marklar

+0

我不知道它是否已被修复。它看起来项目离开了goog,也许看看github:https://github.com/wkhtmltopdf/wkhtmltopdf/issues在那里找到问题。 –