3 Stimmen

Wicked-pdf stürzt in Heroku ab

Meine PDFs werden lokal und manchmal auch in meiner Heroku-App korrekt generiert, aber gelegentlich kommt es zu einem Timeout und ich erhalte diese Fehlermeldung

2012-05-04T14:53:33+00:00 app[web.1]: Started GET "/orders/125/invoice_pdf.pdf" for 10.87.41.73 at 2012-05-04 14:53:33 +0000
2012-05-04T14:54:03+00:00 heroku[router]: Error H12 (Request timeout) -> GET www.printavo.com/orders/125/invoice_pdf.pdf dyno=web.1 queue= wait= service=30000ms status=503 bytes=0
2012-05-04T14:54:03+00:00 heroku[nginx]: 10.87.41.73 - backerm2 [04/May/2012:14:54:03 +0000] "GET /orders/125/invoice_pdf.pdf HTTP/1.1" 503 607 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19" www.printavo.com
2012-05-04T14:54:03+00:00 heroku[nginx]: 127.0.0.1 - backerm2 [04/May/2012:14:54:03 +0000] "GET /orders/125/invoice_pdf.pdf HTTP/1.0" 503 607 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19" www.printavo.com
2012-05-04T14:54:05+00:00 heroku[router]: Error H12 (Request timeout) -> GET www.printavo.com/customers/new dyno=web.1 queue= wait= service=30000ms status=503 bytes=0

Haben Sie eine Idee, was los ist?

0voto

bcackerman Punkte 1436

2 Web-Dynos behebt das Problem ODER verwendet delayed_jobs gem. Stellen Sie außerdem sicher, dass Sie CSS in die generierte PDF-Datei aufnehmen.

0voto

bcackerman Punkte 1436

Nach weiterer Prüfung. Sie brauchen keine 2 Web-Dynos. Stellen Sie einfach sicher, dass Sie das CSS in den Ordner application.html.erb und Ihre file_name.pdf.erb einfügen.

Dies ist meine Datei application.html.erb.

<% if request_from_pdfkit? %>
            <!-- css for pdf -->
                <style type="text/css">
                    <%= File.read(Rails.root.join("public","stylesheets","invoice_pdf.css.scss"))%>
                    <%= File.read(Rails.root.join("public","stylesheets","app.css.scss"))%>
                </style>
            <% end %>

Dann meine .pdf.erb-Datei

<!DOCTYPE html>
<html>
<head>
  <title><%= title %></title>
    <style type="text/css">
        <%= Printavo::Application.assets["invoice_pdf.css.scss"].to_s.html_safe %>
        <%= Printavo::Application.assets["app.css.scss"].to_s.html_safe %>
        body{ font-family: arial !important;}
    </style>
</head>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X