Я читал много областей в Интернете, которые говорят о загрузке файлов в Rails, заставляют веб-приложение зависать, и мне было интересно, так ли это в случае с Heroku Dyno? Если пользователь должен был загрузить файл с 1 гигабайтом, то это приведет к зависанию остальной части приложения, если оно будет размещено на одном дикторе?Загрузка файлов Heroku и Rails
ответ
По умолчанию Rails не является потокобезопасным. Это означает, что каждый экземпляр Rails может обрабатывать только один запрос за раз.
На Heroku вы можете запустить 1 процесс на одном динамо. Это может быть Thin, Unicorn, работник delayed_job и т. Д.
Поскольку Rails по умолчанию не является потокобезопасным, Thin может обрабатывать только один запрос за раз (что означает, что ваш dyno может обрабатывать только один запрос за раз). В этом случае, когда пользователь загружает 1 ГБ файл, Thin может обрабатывать только этот запрос = вызывает зависание следующих запросов. Чтобы решить эту проблему, вам придется масштабировать количество динамиков. Например, вы используете 4 динамика (работает Thin), и вы можете обрабатывать 4 запроса одновременно.
Однако, если вы используете Единорог на вашем динаре Heroku и установите количество рабочих Unicorn равным 4, Rails может обрабатывать 4 запроса за раз. Единорог умный. Он порождает 4 процесса внутри этого сингла Heroku. Это означает, что когда вы загружаете файл размером 1 ГБ, Unicorn продолжает и обрабатывает 3 запроса в то время. И все это работает на одном дино.
Проверьте эту статью для получения дополнительной информации о Heroku и Единороге: http://michaelvanrooijen.com/articles/2011/06/01-more-concurrency-on-a-single-heroku-dyno-with-the-new-celadon-cedar-stack/
Надеется, что это помогает.
UPDATE
Если вы загружаете файлы на S3, вы можете пропустить ваши динамометрические стенды полностью и загружать файлы непосредственно на S3. Просто подсказка. ;-)
- 1. Загрузка файлов Rails и Heroku
- 2. Загрузка файлов на Heroku
- 3. Rails, Heroku, Paperclip и загрузка файлов на S3
- 4. Django heroku загрузка файлов
- 5. Ruby on rails Загрузка и загрузка файлов
- 6. Загрузка файлов Rails: загрузка папки
- 7. Rails - загрузка больших изображений в Heroku
- 8. Загрузка файлов в Rails
- 9. Загрузка файлов Rails и просмотр обновлений - Howto?
- 10. Rails - Загрузка и анализ нескольких файлов CSV
- 11. Heroku - Ruby on Rails - Загрузка фотографий
- 12. Rails 4 Delayed_Paperclip Загрузка файла S3 Heroku
- 13. Загрузка файлов Rails?/Module, включая
- 14. rails 3.2.0 и heroku
- 15. CSS3 Rails и Heroku
- 16. Rails 4 + Github + Heroku: Большое хранилище файлов
- 17. Загрузка и распаковка файлов на S3 через Rails, размещенные на Heroku?
- 18. CSV-кодирование файлов в Rails с S3 и Heroku
- 19. Heroku Медленная загрузка Всюду
- 20. Загрузка в heroku вызывает ошибку
- 21. загрузки файлов Heroku и node.js
- 22. Загрузка файлов в Ruby on Rails
- 23. Heroku и HighCharts Rails Gem -
- 24. Rails, Heroku и контактная форма
- 25. Heroku: Rails 3 и rmagick
- 26. RoR - Загрузка больших файлов в rails
- 27. Загрузка файлов S3 с Rails-приложением
- 28. простая загрузка файлов в Rails не работает
- 29. Загрузка файлов Rails с помощью ajax
- 30. Rails, Загрузка нескольких файлов в альбом