私は2つのRailsアプリケーションを持っています。そのデータはかなり相互依存しています。 Djangoの別のアプリケーションのモデルに簡単にアクセスしたり、他のアプリケーションを共有したりする必要があった場合、これは簡単でした。私は両方のアプリケーションをプロジェクトに組み込み、他のアプリケーションのモデルをインポートするだけです。その時点で、私はちょうどDjangoのORMを使って他のアプリケーションのデータベースにあるオブジェクトにアクセスすることができました。それは一貫して素晴らしいものでした。Railsアプリケーション間でデータにアクセスするためのベストプラクティス?
Railsでは、これを行う方法は、他のアプリケーションが要求したいそれぞれのアプリケーションのRESTful APIフックを作成することであるという圧倒的な感触を得ています。清潔で十分なモジュール式のようだが、次のように私は状況を持っているので厄介取得し始めています:
- メイクGETリクエストをので、GETを作りますアプリケーションBのAPIフックに要求する。
- Bのコントローラの機能の一部として、Aのデータモデルの一部であるデータが必要なため、Aに要求する。
- ステップ2-3が連続して起こっている
これはスケーラビリティの悪夢を作り出していることは明らかです。このケースでは、新しい要求が完了するのを待っている新しい競合条件のために要求がタイムアウトしますが、新しい要求が完了するまで決してなりません。より多くのWebサーバープロセスをスピンアップすることができますが、これらのアプリケーションを両方とも維持すると、余計なGETリクエストを必要としない、これを行うためのより良い方法が必要になったようです。
最終的に私の質問は、1)GETリクエストを発行するよりも、別のRailsアプリケーションのデータを入手するためのより直接的なアプローチがあるのか、それとも実際には素晴らしいデザインのものを使用しようとしているのでしょうか? 2)デザインパターンの穀物と戦っていて、これが本当に素晴らしいアプローチである場合は、これらのアプリのデータを互いに依存関係を保つのを助ける一般的なアドバイスがありますかこのような条件?私は、アプリケーションBが必要とする情報をAフロント(これは今のところ1つのフィールドに過ぎませんが、後でもっと多くの情報が必要です)に渡すことができることを理解していますが、それはです。?
は、アプリケーションBが完了するまでに、アプリケーションAからのデータを必要としている場合アプリケーションAからのリクエストなぜアプリケーションBへのリクエストとともにそのデータを渡すだけではないのですか? –