приложение rails зависает при перенаправлении на URL-адрес .pdf со средним износом wicked_pdf, но генерирует файл pdf в / tmp после истечения времени ожидания системы - PullRequest
0 голосов
/ 11 июля 2020

проблема: в моей среде prod и dev используется nginx и единорог, я пытаюсь использовать драгоценный камень wicked_pdf для создания pdf-версии моей страницы со списком пользователей, он работает в dev Окружающая среда. однако в процессе производства запрос продолжал истекать по таймауту, и я заметил, что до того, как он истечет, файл pdf появится в папке / tmp с размером 0, однако сразу после тайм-аута (процесс единорога убит) pdf будет завершен sh рендеринг, но он не отображается в браузере. В моей среде разработки файл будет удален из папки / tmp и отображен в браузере. dev и production env одинаковы для задействованных файлов (насколько мне известно)

установка добавила следующую строку в соответствующие файлы:

Gemfile: gem 'wkhtmltopdf-binary', '~> 0.9.9.3' gem 'wicked_pdf'

config / mime_types.rb Mime::Type.register "application/pdf", :pdf

config / application.rb config.middleware.use WickedPdf::Middleware

контроллер: redirect_to "/t24_user/t24_to_ad_user.pdf"

Я подозреваю, что это может быть проблема с тупиком, однако я не могу найти никаких журналов, кроме:

unicorn.stderr. log, и в файле production.log нет ошибок:

  E, [2020-07-10T17:55:23.889910 #31607] ERROR -- : worker=1 PID:31617 timeout (46s > 45s), killing
  E, [2020-07-10T17:55:23.901877 #31607] ERROR -- : reaped #<Process::Status: pid 31617 SIGKILL (signal 9)> worker=1
  I, [2020-07-10T17:55:23.902035 #31607]  INFO -- : worker=1 spawning...
  I, [2020-07-10T17:55:23.905433 #39297]  INFO -- : worker=1 spawned pid=39297
  I, [2020-07-10T17:55:23.905655 #39297]  INFO -- : worker=1 ready

любая помощь приветствуется.

1 Ответ

0 голосов
/ 11 июля 2020

Попробуйте отслеживать использование ресурсов вашей службы, запустив top в отдельном окне терминала при попытке загрузить файл pdf. Может случиться так, что у вас просто закончился MEM =)

Кстати, какой дистрибутив вы используете на производстве, а какой локально? Разница в их библиотеках тоже может вызвать ошибку. Насколько я помню, однажды у меня были проблемы с Apline, пока этот гем отлично работал на Ubuntu.

...