2012-08-22 1 views
1

이미지를 생성하고 브라우저에 데이터를 전송해야하는 Rails 3 앱이 있습니다.Heroku에서 send_file (또는 send_data)을 사용하여 메모리 누수를 해결하는 방법은 무엇입니까?

앱이 헤로 쿠에 배포되어야합니다.

그러나 Heroku는 메모리에 보관중인 Mongrel을 통한 스트리밍 만 지원합니다. 그러면 Heroku가 느려지고 12 개 정도 요청한 후에 스레드를 죽입니다.

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

나는 현재 SEND_DATA 또는 send_file ActionController에서 사용하고 있습니다 : DataStreaming

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

에게 Heroku는 랙 :: sendfile을 또는 X-sendfile을 지원하지 않습니다.

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

이 프로젝트는 "루비 잡종-X-sendfile을"은 말한다 : "잡종을 통해 매우 많은 데이터를 스트리밍하는 것은 나쁜 일이다 힘줄 메모리 누수 스프링"와 "인 - 잡종 솔루션"을 제공합니다. 그러나 그것은 좋은 해결책처럼 보이지 않습니다.

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

이 느린 솔루션 먼저 아마존 S3에 대한 모든 파일을 업로드하는 것입니다.

아무도 아이디어가 있으십니까?

GC.start 

난 후 SEND_DATA 레일 컨트롤러 액션의 하단에 그 광고를 배치 :

답변

관련 문제