필자는 서비스 지향 응용 프로그램을 작성하는 초보자이므로 일부 전문가에게는 사소한 질문 일 수 있습니다.Ruby 서비스 지향 아키텍처 - 동기화를 보장하는 방법?
현재 설정은 다음과 같습니다.
1 - 기본 레일 앱입니다. 또한 경로와 일부 응용 프로그램 논리를 포함합니다.
2 - 몇 가지 서비스. 나는베이스 레일 앱에서 이것을 추출했다. 그들은 대부분 DB가 광범위하거나 no-sql 솔루션을 사용하는 리소스입니다.
그럼, 내가하고 결국 한 것은 내 레일 응용 프로그램에서이
같은 것입니다, 나는 장소에 모든 기본적인 CRUD 작업에 응답하는 장소 컨트롤러를 가지고있다. 내부적으로는 장소 서비스에 대한 HTTP 호출을 수행합니다.
def show
req = Typhoeus::Request.new('http://127.0.0.1:7439/places/#{params[:id]}.json')
@places = req.response.body
end
문제는 제가 두 개 이상의 서비스 요청을하면, 뷰를 렌더링하기 전에 모두에 대한 응답이 있는지 확인하는 것입니다. 또한 서비스 호출 1 건으로도 Rails 렌더링 프로세스는 어떻게 작동합니까? 예를 들어, 서비스가 응답하는 데 오랜 시간이 걸리는 경우 페이지가 렌더링되거나 응답을 위해 무한정 기다립니다.
ActiveResource를 사용하는 것이 좋습니다. 유지 관리가 훨씬 쉬울 것입니다. – apneadiving
docs 페이지에는 병렬 요청을 수행하고 모두 완료 될 때까지 대기하는 방법이 명시되어 있습니다. https://github.com/dbalatero/typhoeus –
아마이 책 [Ruby와 Rails로 서비스 지향 디자인] (http://my.safaribooksonline.com/book/web-development/ruby/9780321700124)이 필요합니다. – Anatoly