我的工头宝石没有加载我的所有服务。这是我的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
如果其中任何一个仍然不起作用,请检查这些命令是否有效(如果您直接在控制台中使用它们),并且它们是否保留在前台。