我有一个 Rails 3 应用程序需要生成图像并将数据发送到浏览器。
该应用程序必须部署在 Heroku 上。
然而,Heroku 只支持通过 Mongrel 进行流式传输,它保留了内存。然后这会导致 Heroku 变慢,然后在十几个请求后终止线程。
https://devcenter.heroku.com/articles/error-codes#r14-memory-quota-exceeded
我目前正在使用来自 ActionController::DataStreaming 的 send_data 或 send_file
http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_data
Heroku 不支持 Rack::Sendfile 或 x-sendfile。
https://devcenter.heroku.com/articles/rack-sendfile
“ruby-mongrel-x-sendfile”项目说:“通过 mongrel 流式传输大量数据是一件坏事;会引发严重的内存泄漏”并提供“in-mongrel 解决方案”。但这看起来不是一个好的解决方案。
http://code.google.com/p/ruby-mongrel-x-sendfile/
一个缓慢的解决方案是先将每个文件上传到 Amazon S3。
请问有人有什么想法吗?