13

我的应用程序基于部署在 heroku 上的 RefineryCMS 1.0.8 遇到问题。

Heroku 的请求超时为 30 秒。当通过 RefineryCMS admin 上传文件 > 4MO 时,执行请求有时需要超过 30 秒(主要是因为将文件上传到 s3 需要时间)。

在这种情况下,测功机将被“冻结”并且在大约 30 分钟内没有响应(在此期间的每个请求都以 H12 错误请求超时结束)。这种行为正是本次讨论的最后一条消息中描述的 christos

其他讨论heroku文档中 :“如果您正在处理大于4MB的文件上传,则直接上传到S3是首选方法。这个想法是跳过到您的测功机,直接从最终用户浏览器建立连接到 S3。”

直接上传到 S3 应该是解决方案,但我似乎很难使用 RefineryCMS / Dragonfly / Fog 正确实施它。我不确定在没有对这些工具进行大修改的情况下是否有可能,我想知道是否有替代方案。

谢谢你的帮助

4

2 回答 2

5

并不真地。Heroku 超时是您需要解决的固定问题。直接上传到 S3 是唯一的选择,需要进行某种上传后处理。

有诸如CarrierWaveDirect 之类的解决方案,但我不知道与 Refinery 一起使用这将是多么容易。

于 2011-11-25T11:37:15.573 回答
-5

您可以尝试将独角兽添加到您的应用程序中。

配置/独角兽.rb

worker_processes 整数(ENV["WEB_CONCURRENCY"] || 3)

timeout 180 # << Unicorn Timeout 将允许更长的上传时间。

preload_app 真

before_fork 做 |服务器,工人|

https://devcenter.heroku.com/articles/rails-unicorn

于 2013-06-03T18:42:18.953 回答