2012-02-06 1 views
1

다른 서비스 API와 연결하기 위해 python27로 Google 애플리케이션 엔진에 애플리케이션을 빌드했으며 일반적으로 모든 것이 원활하게 작동합니다. 모든 이제 다음 나는AppEngine에서 외부 API와 통신 할 때 ApplicationError2 및 ApplicationError5

(<class 'google.appengine.api.remote_socket._remote_socket.error'>, error('An error occured while connecting to the server: ApplicationError: 2 ',), <traceback object at 0x11949c10>) 

(<class 'httplib.HTTPException'>, HTTPException('ApplicationError: 5 ',), <traceback object at 0x113a5850>) 

이러한 오류 (은 ApplicationError : 2)의 첫 번째 다음과 같은 두 가지 오류 중 하나를 얻을 난 내가 통신하고있는 서버의 일부에서 발생하는 오류로 해석하지만 이것에 대한 세부 사항을 찾을 수 없었습니다. 그리고 어떤 방법 으로든 제가 책임을지고/고칠 수 있다면.

두 번째 오류 (ApplicationError : 5) 일부 세부 정보를 찾았으므로 서버가 내 응용 프로그램과 통신하는 데 너무 오래 걸렸습니다. 그러나 제한 시간을 20 초로 설정하면 상당히 실패합니다 그보다 더 빠릅니다.

누구나 오류에 대한 링크 또는 통찰력을 제공 할 수 있습니다. 특히 오류를 일으키는 원인과 해결할 수있는 것이 무엇인지 고맙게 생각합니다.

+0

연결의 다른 쪽 끝이 연결을 닫았을 수도 있습니다. – max

+0

이 문제를 재현하기 위해 일부 코드와 공용 URL을 공유 할 수 있습니까? – proppy

+0

전화는 공개 할 수없는 많은 코드에 묻혀 있으며 "정리"해야 할 일입니다. 나는 이것이 실제로 일어날 수있는 이유에 관해서 몇 가지 아이디어를 생각해 보았습니다. 오류의 일반적인 원인과 오류를 극복하기 쉬운 쉬운 승리가 있는지를 확인했습니다. – user714852

답변

1

당신은 캐주얼 대화에 단어 "나무 등"을 사용하기 시작 얻을 당신이 할 수있는 유일한 일이 다시 전화를 시도하고 초기 호출을 통해 갈 수 있다는 사실을 받아 들일 것입니다 :)

저주 , 예를 들어 호출이 실제로 무언가를 한 경우 (예 : 고객 주문 생성), 시간 초과 오류가 발생한 후 첫 번째 요청이 성공했는지 확인해야 할 수도 있습니다. 그러면 여러 개의 사본으로 끝나지 않습니다. 같은 순서.

희망이 있습니다. FWIW 우리는 비우호적 인 API를 사용하여 우리를 위해 작업합니다. 우리 코드의 약 80 %가 이런 종류의! @ # $ %를 다루고 있습니다.

+0

현재의 전략은 통화를 다시 시도하는 것입니다. 이것이 문제의 일부입니다. 호출이 성공했는지 실패했는지 판단하는 규칙이나 메커니즘이없는 것 같습니다. – user714852

+1

이것은 좋은 생각이 아닙니다. 호출이 성공한 것일 수 있습니다. 예를 들어, 호출이 일부 오브젝트 (예 : 폴더)를 작성하는 것이라면, 이제 호출이 존재합니다. 두 번째 전화는 두 번째 폴더를 만듭니다. 이것은 바람직하지 않을 가능성이 큽니다. –

+0

좋은 점은 이전 통화가 먼저 성공했는지 확인해야합니다. – user714852

관련 문제