铁轨上的希罗库/红宝石...我如何确定我是作为工作者还是网络运行



我在(ruby/rails) heroku上有一个应用程序。它运行一个web和一个worker(例如)我希望能够告诉什么"类型"的动态下运行的应用程序。

我想这是一个简单的事情,但我看不到任何告诉我如何告诉。

我不知道是否有更优雅的方法来做到这一点,但是您可以在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

最新更新