开发中的rails服务管理? (领班不开始所有服务)

时间:2012-04-15 12:40:56

标签: ruby-on-rails service ruby-on-rails-3.2 god foreman

我的工头宝石没有加载我的所有服务。 这是我的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

是否有可能解决这个问题或者我是否应该在开发模式下更好地使用GOD gem?

2 个答案:

答案 0 :(得分:2)

流程类型必须都具有唯一的名称。从Procfile开始,您已将所有流程命名为search。尝试以下作为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

答案 1 :(得分:0)

您需要指定有关未加载哪些服务以及错误/控制台输出的更多详细信息。

问题很可能是你在后台启动流程(使用&选项),而且工头不支持这个(参见this wiki page。另外,它更好(用于开发)至少)不要将输出重定向到日志文件 - foreman以一种很好的方式处理日志输出。

我还认为您需要使用resque:work代替resque:start

你可以试试这个:

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

如果其中任何一个仍无法正常工作,请检查这些命令是否有效,如果您直接在控制台中使用它们,并且它们仍然位于前台。