2012-08-22 4 views
0

나는 내가 레일 애플 리케이션을 찾고 다음 워크 플로우가 :처리 비동기 3 자 HTTP 요청

  • 구문 분석 들어오는 요청
  • 구축 제 3 자 웹 서비스 요청
  • 는 제 3 자 요청
  • 보내기
  • 예상 된 응답을 처리하도록 작업자를 큐에 넣기
  • 응답이 도착하면 응답 처리 응답으로 구문 분석 결과를 다시 보내십시오.

  • 내가 작업중인 데이터 개체 외에도 필요한 모델은 무엇입니까? (예 : 대기열, 작업자 등)

  • 이 작업을 수행하려면 어떤 표준 레일 컨트롤러를 구현해야합니까?

모든 결과는 JSON을 통해 전달됩니다.

+0

웹 응용 프로그램을 사용하는 경우 ajax 메서드를 사용하여 데이터를 제어하고 출력하는 자체 컨트롤러로 이동할 수 있습니다. 나는 특별히 프론트 엔드 javascript/ajax가 필요한 애플 리케이션을 위해 비슷한 일을했지만, 이것을 위해 할 수있다. –

+0

이 Rails 앱에는 프론트 엔드가 없으며 다른 Rails 앱/다른 유형의 서버 (클라이언트 앱/브라우저 없음)에서 호출되므로 가능한 경우 js를 사용하지 마십시오 –

+0

http://stackoverflow.com/questions/6643964/asynchronous-http-request-in-ruby 도움이 되셨습니까? –

답변

0

단계 # 4 - 예상 응답을 처리하도록 작업자를 대기열에 넣기가 어렵습니다. 응답을 받으면 작업 대기열에 놓는 것이 어떻습니까?

웹 응용 프로그램 외부에서 응답을 처리하려면 응답을받은 후 작업을 처리하도록 작업자를 대기시켜야합니다. 이것은 최고의 경로처럼 보입니다.

내가 생각하는 유일한 방법은 응답을 처리하고 해당 응용 프로그램에 타사 응답을 보내고 계산 된 결과를 다시 웹 응용 프로그램으로 보내는 다른 응용 프로그램을 만드는 것입니다.

+0

귀하의 요지를 볼 수 있지만 요청과 응답간에 관련 데이터가 유지되는지 어떻게 확인할 수 있습니까? 그것이 내 자신을 유지해야합니까 resque에 의해 지속됩니까? –

+0

이것은 실제로 사용 사례에 따라 다릅니다. 다시 얻은 데이터 중 일부를 사용하여 사용자 레코드를 업데이트한다고 가정 해보십시오. 먼저 타사에서 필요하지 않은 데이터로 사용자를 업데이트 한 다음 백그라운드 작업자에게 요청을 보내고 응답을 받고 해당 사용자에게 필요한 기타 정보를 업데이트하십시오. – Solomon