私は heroku にデプロイされた sinatra アプリを持っており、web を 3 つの dyno にスケーリングしたので、リクエストは web.1 web.2 と web.3 によってそれぞれ処理されます。現在のリクエストがどのdynoによって処理されているかをコントローラーアクション内からルビーで知りたいので、これをデータベースに保持したいと思います。私は少しグーグルをしましたが、満足のいく答えは見つかりませんでした。
どんな助けでも大歓迎です。
ありがとう
起動時にワーカー プロセスでこれを行うには、おそらく非常にハックな方法があります。
heroku logs --tail
を参照してください。ワーカーはログを読み取ります。なぜ自分が「web.1」であることを知る必要があるのか疑問に思う必要があります。マシンの MAC アドレスのような一意の UUID にできないのはなぜですか?
これを知る方法は本当にありません。どの Dyno がリクエストを処理しているかを指定する HTTP ヘッダーを Heroku から取得しないため、特定する方法がありません。あなたができる最善の方法は、Heroku にすべてのログをどこかにストリーミングさせ ( syslog ドレイン)、ログファイルを解析して要求 URI を Dyno に一致させることです。