Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get Rails 4 ActionController::Live streaming working with Thin and Ruby 2? And how do Thin and Puma scale with live streaming?

I get it working with Puma, but with Thin I don't get any stream output and I have to kill the server to stop it. I'm testing using tenderlove's initial example outputing the current time:

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

A more general question to me is, is this type of streaming practical in an app with any significant traffic? I imagine there can be easily hunderts if not thousands of users connected to a stream at once in such app. How would Puma scale here? I read that Puma uses 1 thread per connection. Is that efficient? And what about Thin? Will all connections be in the same thread? Will that be more efficient?

Another issue I have is that even with Puma I only get one connection working locally. When I curl from a second terminal I don't get any output there... Anybody know why?

like image 609
Nico Avatar asked Mar 15 '13 20:03

Nico


1 Answers

If you change your development.rb inside environments:

/config/environments/development.rb

config.cache_classes = true

config.eager_load = true

You will be able to get more than one connection with puma localy! The downside is that you have to restart everytime you want to see any changes you've made.

like image 190
Philip Avatar answered Sep 27 '22 22:09

Philip