开发中的 Rails 服务管理?(工头不会启动所有服务)



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

进程类型必须具有唯一的名称。从您的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

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

问题很可能是您在后台启动进程(使用 & 选项),而 foreman 不支持此功能(请参阅此 wiki 页面。此外,最好(至少对于开发而言)不要将输出重定向到日志文件 - 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

如果其中任何一个仍然不起作用,请检查这些命令是否有效(如果您直接在控制台中使用它们),并且它们是否保留在前台。

相关内容

  • 没有找到相关文章

最新更新