나는 데이터가 꽤 상호 의존적 인 두 개의 Rails 애플리케이션을 가지고있다. Django에서 다른 응용 프로그램의 모델에 쉽게 액세스하거나 다른 방법으로 공유해야하는 경우, 이는 두 프로젝트를 모두 프로젝트에 포함시키고 다른 응용 프로그램의 모델을 가져올 수 있기 때문에 사소한 일이었습니다. 이 시점에서 나는 Django의 ORM을 사용하여 다른 앱의 데이터베이스에있는 객체에 액세스 할 수 있었으며 일관성 있고 멋진 도구였습니다.Rails 애플리케이션 간의 데이터 액세스 우수 사례?
레일즈에서 압도적 인 분위기를 얻으려는 방법은 다른 응용 프로그램에서 요청할 각 작업에 대해 각 응용 프로그램에 RESTful API 후크를 작성하는 것입니다. 깨끗하고 충분한 모듈 보인다, 그러나 다음과 같이 내가 상황을 가지고 있기 때문에 혼란스러워하기 시작하고있다, •
- 만들기 GET 요청을, 그래서 그것은 GET한다 응용 프로그램 B에서 API 후크 요청.
- B의 컨트롤러에있는 기능의 일부로 A의 데이터 모델에 속한 데이터가 필요하므로 A에 요청합니다.
- 2-3 단계가 연속적으로 발생합니다
이것이 확장 성의 악몽을 자아내는 것은 명백합니다. 우리의 경우, 새로운 요청이 원래의 요청이 완료되기를 기다리고 있지만 새로운 요청이 완료 될 때까지 결코 기다릴 수없는 경쟁 조건 때문에 요청이 시간 초과됩니다. 우리는 더 많은 웹 서버 프로세스를 추진할 수 있지만 이러한 두 가지 응용 프로그램을 모두 유지 관리 할 때 이러한 불필요한 GET 요청을 처리하지 않는 더 나은 방법이 필요하다고 생각합니다.
궁극적으로, 제 질문은 1) GET 요청을 발행하는 것보다 다른 Rails 응용 프로그램의 데이터를 얻는 방법이 더 직접적입니까? 아니면 실제로 그것을 죽이는 방식으로 실제로 멋진 디자인을 사용하려고합니까? 2) 디자인 패턴에 맞서 싸우는 경우 정말 좋은 접근 방법입니다.이 앱의 데이터를 서로 의존하여 발생시키는 문제를 해결하는 데 도움이되는 일반적인 조언이 있습니까? 이런 조건? 나는 앱 B가 필요로하는 정보를 A 앞에서 필요로 할 것임을 알았습니다. (바로 지금은 하나의 필드지만 나중에는 더 많은 정보가 될 수 있습니다.) 오른쪽?
이 응용 프로그램 B가를 완료하기 위해 응용 프로그램 A로부터 데이터를 필요로가는 경우 응용 프로그램 A의 요청과 함께 해당 데이터를 응용 프로그램 B에 전달하는 이유는 무엇입니까? –