Heroku / ruby​​ on rails ...我怎么能弄清楚我是作为工人还是网络运行

时间:2013-01-08 03:47:53

标签: ruby-on-rails heroku process

我有一个应用程序(ruby / rails)heroku。它正在运行1个Web和1个工作程序(例如) 我想能够告诉应用程序运行的dyno的“类型”。

我怀疑这是一件很简单的事情,但我看不出任何告诉我如何分辨的事情。

1 个答案:

答案 0 :(得分:2)

我不知道是否有更优雅的方法来执行此操作,但您可以在Procfile中设置环境变量:

web: bundle exec ... PROC_TYPE=web
worker: bundle exec ... PROC_TYPE=worker

然后在rails代码中,您可以检查ENV ['PROC_TYPE']

编辑:更详细的Procfile示例,典型的rails应用程序:

web: bundle exec rails server -p $PORT PROC_TYPE=web
worker:  bundle exec rake jobs:work PROC_TYPE=worker