我正在Heroku上运行rails 3.2.11应用程序并遇到一个我无法弄清楚的间歇性问题。
我的模型包含用户上传的文件。该文件通常约为300-400Kb。当用户尝试创建或编辑此模型并上传文件时,我发现生产中存在问题我定期收到h12超时错误。很难重新创建错误,因为我测试它几乎一直都很好,包括高达10mb,因此问题似乎并不直接取决于文件大小。
我正在使用carrierwave_direct gem直接上传到S3。我开始使用carrierwave gem并切换到carrierwave_direct,希望它可以解决问题。我没有对文件进行任何后期处理,我只需要将其上传。
我在prod中重新创建了这个错误,除了我自己以外的服务器上没有用户,所以它似乎也不是一个流量问题。
示例heroku日志条目:
at =错误代码= H12 desc =“请求超时”方法= POST dyno = web.1 queue = 0ms wait = 0ms connect = 1ms service = 33605ms status = 503 bytes = 0
谢谢!
答案 0 :(得分:1)
Heroku超过30秒的请求超时 - 这对于上传来说总是一个问题。
使用Amazon S3,您可以直接上传而无需通过Heroku,并在上传完成后将响应传递给Heroku,从而完全绕过Heroku的超时 - 您需要查看Rackspace是否提供此类功能。
http://railscasts.com/episodes/383-uploading-to-amazon-s3
以上链接可以帮助您在carrierwave_direct和后台工作的帮助下在s3上传图像