2012-08-22 2 views
1

J'ai une application Rails 3 qui doit générer une image et envoyer les données au navigateur.Comment résoudre la fuite de mémoire avec send_file (ou send_data) sur Heroku?

L'application doit être déployée sur Heroku. Cependant, Heroku ne prend en charge que le streaming via Mongrel qui conserve la mémoire. Cela fait alors ralentir Heroku, puis tue le fil après une douzaine de demandes.

https://devcenter.heroku.com/articles/error-codes#r14-memory-quota-exceeded

J'utilise actuellement send_data ou send_file de ActionController :: DataStreaming

http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_data

Heroku ne supporte pas rack :: Sendfile ou x-sendfile.

https://devcenter.heroku.com/articles/rack-sendfile

Le projet « ruby-bâtarde-x-sendfile » dit: « streaming des données très beaucoup par bâtarde est une mauvaise chose, jaillit des fuites de mémoire filandreux » et fournit une « solution en bâtarde ». Mais cela ne semble pas être une bonne solution.

http://code.google.com/p/ruby-mongrel-x-sendfile/

Une solution à ce lent est de télécharger tous les fichiers sur Amazon S3 en premier.

Quelqu'un a-t-il des idées s'il vous plaît?

Répondre

Questions connexes