2012-04-20 2 views
2

나는 토네이도 및 비동기 웹 서버를 살펴보기 시작했습니다. 토네이도에 대한 많은 예에서, 더 이상 요청과 같이 처리됩니다 : 웹 서버를 토네이도로 전화를 걸토네이도/비동기 웹 서버 이론, 비동기 서버를 활용하기 위해 장기 실행 작업을 처리하는 방법

  1. 토네이도는 콜백이되고 기다리는 동안
  2. 하자 토네이도 요청을 계속 복용하는 API에 비동기 웹 호출을 콜백에서
  3. 응답을 처리합니다. 서버를 사용자에게 보냅니다.

가상의 목적으로 사용자가 토네이도 서버에 /retrive으로 요청한다고 가정 해 보겠습니다. /retrieve은 내부 API myapi.com/retrieve_posts_for_user_id/ 또는 w/e에 요청합니다. api 요청은 요청을받는 동안 실행하기 위해 1 초가 걸릴 수 있으며, 결국 토네이도 서버가 응답을 반환합니다. 우선이 흐름은 토네이도를 사용하는 '일반적인'방법입니까? 많은 온라인 코드 예가 ​​그렇습니다.

두 번째로, 위의 흐름이 표준 흐름이라고 가정 할 때 두 번째로 (내 마음이 흥분하기 시작한 곳입니다) myapi.com은 비동기식이어야합니까? 비동기가 아니고 요청에 몇 초가 걸리는 경우 블로킹 서버와 동일한 병목 현상이 발생하지 않을까요? 아마도 토네이도 또는 비동기에 대한 일반적인 사용 사례의 예가이 문제에 대해 밝힐 수 있습니다. 고맙습니다.

답변

2

예, 귀하의 질문을 이해합니다. 이는 토네이도의 일반적인 유스 케이스입니다.

당신의 토네이도 서버에 대한 모든 요청이 myapi.com에 요청을 할 경우

myapi.com는 예, myapi.com 여전히 병목 것, 차단하고 있습니다. 그러나 일부 요청 만 myapi.com으로 처리해야하는 경우 토큰을 계속 사용하면 요청에 대한 응답을 myapi.com으로 기다리는 동안 해당 요청을 계속 처리 할 수 ​​있으므로 Tornado는 계속 승리 할 수 ​​있습니다. 하지만 상관없이 myapi.com이로드를 처리 할 수 ​​없다면 토네이도 서버를 앞에 놓으면 마술처럼 수정되지 않습니다. 차이점은 myapi.com이 통화 중일 때도 토네이도 서버가 요청에 응답 할 수 있다는 것입니다.

관련 문제