Rubytastic
Rubytastic

Reputation: 15491

rails service management in development? ( foreman does not start all services )

My foreman gem does not load all my services. This is my Procfile:

search: redis-server
search: bundle exec rake resque:start  &&> log/resque_worker_queue.log
search: bundle exec rackup private_pub.ru -s thin -E production & &> log/private_pub.log
search: bundle exec rake sunspot:solr:run

Is it possible to fix this Or should I better use GOD gem even in development mode?

Upvotes: 0

Views: 355

Answers (2)

Ralf
Ralf

Reputation: 14840

You need to specify more details on which services are not loaded and what the error / console output is.

The issue is most likely that you are starting the processes in the background (with the & option), and foreman does not support this (see this wiki page. Additionally, it is better (for development at least) to not redirect the output to log files - foreman handles the log output for you in a nice way.

I also believe you need to use resque:work instead of resque:start.

You can try this:

redis:  redis-server
worker: QUEUE=* bundle exec rake resque:work
web:    bundle exec rackup private_pub.ru -s thin -E production
solr:   bundle exec rake sunspot:solr:run

If any of these are still not working, check that the commands work if you use them directly in the console, and that they stay in the foreground.

Upvotes: 0

Ryan Daigle
Ryan Daigle

Reputation: 11667

The process types must all have unique names. It appears from your Procfile that you've named all the processes search. Try the following as your Procfile:

redis:  redis-server
worker: bundle exec rake resque:start  &&> log/resque_worker_queue.log
web:    bundle exec rackup private_pub.ru -s thin -E production & &> log/private_pub.log
solr:   bundle exec rake sunspot:solr:run

Upvotes: 2

Related Questions