基于RefineryCMS 1.0.8我的应用程序出了问题 部署在heroku上。
Heroku的请求超时为30秒。上传文件时> 4MO通过RefineryCMS管理员,有时需要花费更多 30秒执行请求(主要是因为需要的时间 将文件上传到s3)。
在这种情况下,dyno将被“冻结”并且 大约30分钟没有响应(在此期间结束时的每个请求 由H12错误请求超时)。这种行为正是在this discussion
中的最后一条消息中描述christos的原因从此other discussion 和the heroku documentation :“直接上传到S3是首选的方法,如果你是 处理大于4MB的文件上传。想法是跳过跳跃 到您的dyno,直接从最终用户浏览器建立连接 到S3。“
直接上传到S3应该是解决方案,但看起来很难 让我用RefineryCMS / Dragonfly / Fog正确实现它。我不确定是否可以在没有对这些工具进行大修改的情况下,我想知道是否有替代方案。
感谢您的帮助
答案 0 :(得分:4)
不是真的。 Heroku超时是你需要解决的石头事物。直接上传到S3是唯一的选择,需要进行某种上传后处理。
有一些解决方案,例如CarrierWaveDirect,但我不知道与Refinery一起使用会有多容易。
答案 1 :(得分:-4)
worker_processes整数(ENV [“WEB_CONCURRENCY”] || 3)
超时180#<< Unicorn Timeout将允许更长的上传时间。
preload_app true
before_fork do | server,worker |