1

我正在构建一个应用程序,它使用用户创建的旅行地图创建 PDF 文档。它有两个阶段:

  • 个性化——用户选择兴趣点。
  • 完成 - 用户输入他们的电子邮件地址,我们生成 PDF 地图并通过发送带有下载链接的电子邮件来完成该过程。

我对流程的第二阶段有疑问。请求生成 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

我会非常感谢任何建议。请问有什么不清楚的地方。问候

4

0 回答 0