Поддерживает ли Heroku ActionController::Live?

У меня есть приложение Rails, размещенное на Heroku, и я хочу добавить функции Server Sent Events, но я не могу найти документацию или запись в блоге, относящуюся к Heroku.

Поскольку не все серверы (например, WEBrick) поддерживают ActionController::Live, мне было интересно, какой сервер по умолчанию на Heroku и можно ли настроить среду (т.е. изменить сервер) для поддержки SSE.

Мы будем очень признательны за любые дальнейшие советы по использованию сервера и его настройке.


person collimarco    schedule 27.07.2013    source источник


Ответы (2)


Я думаю, что мой ответ не так уж полезен, но вы можете попробовать.

Во-первых:

создайте Procfile в корне рельсов со следующим содержимым:

web: bundle exec rails server puma -p $PORT -e $RACK_ENV

затем добавьте в Gemfile:

gem 'puma'

Выше вы можете переключиться на тонкий, но рассмотрите ссылку ниже (и многие другие подробности)

http://tenderlovemaking.com/2012/07/30/is-it-live.html

person CodeGroover    schedule 27.07.2013

Heroku не обязательно будет проблемой здесь - это среда, которая позволяет вашему приложению работать (я думаю, на Amazon EC2)


Многопоточные серверы

Вам нужно искать серверное программное обеспечение, которое вы используете для запуска своего приложения. Heroku в основном берет гем вашего сервера и позволяет ему работать со своими процессорами и другими вычислительными мощностями; так что действительно ли их платформа может играть в мяч с правильным сервером

Вы действительно ищете многопоточные серверы, которые вы можете найти здесь https://stackoverflow.com/questions/17902386/is-puma-the-only-multi-threaded-rails-4-http-server

Пума

Rainbows! поддерживает несколько моделей параллелизма, включая многопоточность.

Zbatery — стоечный HTTP-сервер без застрявшего в нем форка

Phusion Passenger 4 поддерживает многопоточность с момента его бета-тестирования.

Thin имеет многопоточный режим, который можно включить, передав --threaded или установив threaded: true в соответствующем конфигурационном файле (например, bundle exec thin start --threaded)

Net::HTTP::Server, несмотря на отсутствие рекламы, поддерживает многопоточность; очень минималистский

person Richard Peck    schedule 08.11.2013