ユーザーが作成した旅行の地図を含む PDF ドキュメントを作成するアプリケーションを構築しています。次の 2 つの段階があります。
- パーソナライゼーション - ユーザーは興味のあるポイントを選択します。
- ファイナライズ - ユーザーが電子メール アドレスを入力すると、PDF マップが生成され、ダウンロード リンクが記載された電子メールが送信されてプロセスが完了します。
プロセスの第 2 段階に問題があります。PDF の生成を要求すると、エラーが発生します。
ログ:
app[worker.1]: Starting to finalize PDF no #3384
app[worker.1]: Generating pdf url:/pdfs/new.json?id=3384&token=abcdeyd
app[web.2]: Started GET "/pdfs/new.json?id=3384&token=abcdeyd"
数秒後、次のようになります。
heroku[router]: at=error code=H12 desc="Request timeout" method=GET path=/pdfs/new.json?id=3384&token=abcdeyd" host= fwd= dyno=web.2 queue=0ms wait=0ms connect=1ms service=30000ms status=503 bytes=0
その後:
[Worker(host:pid:2)] Trip#finalize_without_delay! failed with MultiJson::DecodeError: 795: unexpected token at '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
app[worker.1]: <html>
app[worker.1]: <head>
app[worker.1]: <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
app[worker.1]: <style type="text/css">
app[worker.1]: html, body, iframe { margin: 0; padding: 0; height: 100%; }
app[worker.1]: iframe { display: block; width: 100%; border: none; }
app[worker.1]: </style>
app[worker.1]: <title>Application Error</title></head>
app[worker.1]: </head>
app[worker.1]: <body>
app[worker.1]: <iframe src="//s3.amazonaws.com/heroku_pages/error.html">
app[worker.1]: <p>Application Error</p>
app[worker.1]: </iframe>
app[worker.1]: </body>
app[worker.1]: </html>' - 0 failed attempts
ユーザー側から見ると、次のようになります。
app[web.1]: Started GET "/pdfs/3384"
app[web.1]: OpenURI::HTTPError (403 Forbidden):
app[web.1]: app/controllers/pdfs_controller.rb:52:in `show'
そして、これの最も奇妙な部分は、約 30 ~ 40 分後に実際に PDF をダウンロードしようとしたときに、すべてがうまくいき、自分のコンピューターにダウンロードしたことです。
app[web.1]: cache: [GET /pdfs/3384] miss
app[web.1]: Processing by PdfsController#show as HTML
app[web.1]: Parameters: {"id"=>"3384"}
app[web.1]: Completed 200 OK in 2101ms (Views: 0.9ms | ActiveRecord: 7.4ms | Solr: 0.0ms)
heroku[router]: at=info method=GET path=/pdfs/3384 dyno=web.1 queue=0 wait=1ms connect=1ms service=4220ms status=200 bytes=13825239
どんな提案にもとても感謝しています。不明な点があれば質問してください。ご挨拶