Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Autorun the Faye server when I start the Rails server

I currently have Faye working with my Rails 3.0.9 application. However I have two separate tabs open in my terminal. One for the Faye server, and one for the Rails server. How can I integrate them and automatically run the Faye server when Rails starts up?

To start the Faye Server, I am running:

rackup faye.ru -s thin -E production

faye.ru

require 'faye'
faye_server = Faye::RackAdapter.new(:mount => '/faye')
run faye_server

Please let me know if you need any more information.

like image 600
ardavis Avatar asked Jun 21 '11 18:06

ardavis


2 Answers

Simply create an initializer containing:

Thread.new do
  system("rackup faye.ru -s thin -E production")
end

Better option:

Use https://github.com/FooBarWidget/daemon_controller

like image 51
apneadiving Avatar answered Oct 31 '22 20:10

apneadiving


Nowadays, I'd just use Foreman for this: https://github.com/ddollar/foreman

By creating a Procfile, you can specify which daemons need to run (with control for how many of them of each you want), and keeps everything in one terminal window (with great color coding of each process). It can even export to upstart or init.d scripts for production, if your environment is debian based.

Once your Procfile is all set up, then all you need to do is run: foreman start and you're off to the races. I use it for resque and faye.

like image 32
xentek Avatar answered Oct 31 '22 21:10

xentek