2009-10-01 2 views
1

Google App Engine/Java에서 Twitter4J 웹 애플리케이션을 개발 중입니다.GAE/J에서 DeadlineExceededException을 방지하는 기술?

두 개의 목록을 표시해야합니다. 하나는 트위터 친구이고 다른 하나는 팔로어입니다. 사진과 화면 이름.

20 ~ 30 명의 팔로어 및 친구가있는 사람들에게 잘 작동합니다. 하지만 나는 150+ 추종자와 친구가있는 사용자를 시도 할 때 DeadlineExceededException을주었습니다.

웹 요청이 30 초 이상 걸리면 GAE에서이 예외가 발생합니다.

그래서이 예외를 피하기 위해 어떤 기법을 사용할 수 있습니까?

각 목록에 대해 두 건의 AJAX 호출을 생성해야합니까? 페이지가로드 된 후. 그래서 모든 호출에는 30 초 제한이 있습니다.

다른 방법은 무엇입니까? 나는 그것을 만들었습니다.

도와주세요.

답변

2

모든 팔로어/친구를 한 번에 쿼리하려는 경우 확실하지 않습니다 (어쨌든 매우 많은 수의 팔로어/친구가있는 사람의 경우 Twitter API 제한 속도에 문제가 있음). 그래서 나는 당신이 제한된 수의 추종자/친구를 위해 트위터 API를 쿼리한다고 가정하고, 트위터 페이징을 사용하여 더 많은 것을 보여줄 수 있다고 가정합니다.

내 솔루션은 Twitter에서 구현 한 것이며, 브라우저에서 상태/친구 및 상태/팔로어를 수행하는 것입니다. 브라우저에서 상태 URL과 콜백 함수를 사용하여 < 스크립트 > 태그를 추가하여 JavaScript를 통해 가능합니다. 이것은 GAE를 프록시로 우회합니다. 이렇게하면 GAE의 시간 초과 문제를 피할 수있을뿐만 아니라 GAE의 호출 수/CPU 시간이 줄어들어 응용 프로그램이 무료 GAE 한도를 초과하면 비용이 더 낮아집니다.

+0

감사합니다. Hilbrand 님의 답변입니다. 나는 당신이 트위터를 보내는 것에 대해 이야기하고 있다고 생각합니다. 권리? 따라서 URL을 작성하면 해당 트윗 텍스트가 트위터 웹 텍스트 영역에 나타납니다. 그리고 내 사이트는 으로 언급되지 않을 것입니다. 내가 너를 올바르게 이해한다면. –

+0

아니요, 타임 라인에 전화하는 것입니다. 이 작업은 콜백 메소드를 통해 수행됩니다. http://apiwiki.twitter.com/Things-Every-Developer-Should-Know#5Parameters가 예상을 확인하십시오. 게시는 브라우저 내에서 도메인 간 제한으로 인해 프록시 (귀하의 경우 GAE)를 통해 수행해야합니다. Twitter API를 통해 게시 할 때 애플리케이션 이름이 표시됩니다. –