J'ai des PDF que j'ai besoin de convertir à partir de html dans mon application rails qui comprend à la fois les en-têtes et les pieds de page. Cela m'a laissé avec wkhtmltopdf (s'il y a une autre option, s'il vous plaît faites le moi savoir!) Pour les petits fichiers PDF, cette solution a bien fonctionné - mais les plus gros fichiers PDF sont devenus un problème. J'utilise maintenant un worker de delayed_job pour exécuter cette conversion en arrière-plan sur un dyno de travailleur hobby - et cela prend du temps, mais ça marche ... parfois. Pour les PDF plus volumineux (ou ceux avec beaucoup d'images), je n'obtiens jamais le résultat. Creuser dans les journaux pour le travailleur, je vois ce qui suit:wkhtmltopdf en cours d'exécution sur l'horodateur Heroku
2017-05-05T03:36:18.164514+00:00 heroku[worker.1]: Process running mem=666M(130.1%)
2017-05-05T03:36:18.164514+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2017-05-05T03:36:37.951774+00:00 heroku[worker.1]: Process running mem=804M(157.0%)
2017-05-05T03:36:37.951813+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2017-05-05T03:36:57.964496+00:00 heroku[worker.1]: Process running mem=944M(184.6%)
2017-05-05T03:36:57.964542+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2017-05-05T03:37:37.826785+00:00 heroku[worker.1]: Process running mem=1040M(203.2%)
2017-05-05T03:37:37.826861+00:00 heroku[worker.1]: Error R15 (Memory quota vastly exceeded)
2017-05-05T03:37:37.826932+00:00 heroku[worker.1]: Stopping process with SIGKILL
2017-05-05T03:37:37.985631+00:00 heroku[worker.1]: Process exited with status 137
2017-05-05T03:37:37.998614+00:00 heroku[worker.1]: State changed from up to crashed
2017-05-05T03:37:38.000020+00:00 heroku[worker.1]: State changed from crashed to starting
2017-05-05T03:37:45.825684+00:00 heroku[worker.1]: Starting process with command `rake jobs:work`
2017-05-05T03:37:46.532529+00:00 heroku[worker.1]: State changed from starting to up
2017-05-05T03:37:50.758067+00:00 app[worker.1]: [Worker(host:a5db76f8-58b3-4585-b664-eee04efb8a96 pid:4)] Starting job worker
2017-05-05T03:37:50.758157+00:00 app[worker.1]: I, [2017-05-05T03:37:50.758063 #4] INFO -- : 2017-05-05T03:37:50+0000: [Worker(host:a5db76f8-58b3-4585-b664-eee04efb8a96 pid:4)] Starting job worker
Je suis en cours d'exécution clairement dans un mur de la mémoire (pas sûr comment résoudre ce problème sans avoir à acheter un dyno beaucoup plus cher), mais je pense que c'est correct ... il devrait juste sortir sur le disque et prendre beaucoup plus de temps, non? J'ai une instance privée installée sur cloud9 avec la même configuration, et c'est ce qu'elle fait là. Est-il possible de configurer des options de pagination?
Alors, que puis-je faire? Je ne me soucie pas si le PDF prend 2-3 minutes pour générer, je ne veux tout simplement pas se terminer!
Merci!