2つのダイノスをソケット接続で直接通信したいとします。残念ながら、あなたはそれを簡単に行うことはできません。 Herokuのエモスと12ファクタのアプリケーション設計(http://12factor.net)に反して実行されます。これは、プロセスを互いに分離し、通信を「ネットワーク接続サービス」経由で行うことを指定します。その2番目のポイントはニュアンスのように見えるかもしれませんが、注入された環境変数を使ってダイノスが他のサービスをどのように発見するかに影響します。
この制約には多くの理由がありますが、計算単位としての「dynos」は、アプリケーションのライフサイクルにわたって何度もスケールされたり、異なる物理サーバーに移行されたりする可能性があります。 dyno上のソケットに確実に接続しようとすると、実際にはかなり複雑になります(倍数が動作している場合は正しいものを選択し、スケーリング/移行イベント後に接続を再ネゴシエートするなど)。忘れないでください - たとえあなたがheroku ps:scale client=2
に電話するつもりがないとしても、Herokuはそのことを知らず、プラットフォームとして、あなたのことを想定するように設計されています。
解決策は、Redisのような中間サービスを使用して、Python RQなどのフレームワークを介したプロセス間通信を容易にすることです。
また、2つのdynosを別々のアプリケーションとして扱います。次に、そのアプリケーション用に公開されているDNSエントリを使用してHTTP経由で接続することができます。注 - その場合、データベースが必要であれば共有することは可能です。
希望に役立ちます。
ここに意味のあるコードと問題の説明を追加するには[編集]してください。 あなたの問題を で示している[最小、完全、検証可能な例](http:// $ SITEURL $/help/mcve)を投稿すると、より良い回答が得られます。ありがとう! – Peter