2012-02-06 6 views
1

私はGoogleアプリケーションエンジンでpython27で別のサービスAPIに接続するためのアプリケーションを構築しました。すべての今して私は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)の最初の次の二つのいずれかのエラーを取得する私は私が通信していたとサーバの一部で発生したエラーと解釈し、しかし、これについての詳細を見つけることができず、もし私が責任を負う/それを修正できる方法があれば。

これらのエラーの2番目のエラー(ApplicationError:5)について詳しく説明しましたが、サーバーがアプリケーションと通信するには時間がかかりすぎたようですが、タイムアウトは20秒に設定されており、それよりも速い。

誰かがエラーへのリンクや洞察を提供することができます。具体的には何が原因でエラーが発生し、それを解決するために何ができるのでしょうか?非常に感謝します。

+0

接続のもう一方の端が接続を閉じた可能性があります。 – max

+0

この問題を再現するために、コードとパブリックURLを共有できますか? – proppy

+0

コールはかなり多くの公開不可能なコードに埋め込まれており、 "クリーン"にはかなりの仕事になるでしょう。私は本当になぜこれが起こっているのかといういくつかのアイデアの後にありました - エラーの一般的な原因とエラーを克服するための簡単な勝利があるかどうかを確認することでした。 – user714852

答えて

1

あなたはカジュアルな会話や呪いに単語「冪等」を使用して起動するために取得:)

あなたができる唯一のことは、コールを再試行してください、そして、あなたの最初の呼び出しを介して行っているかもしれないという事実を受け入れることです例えば、コールが実際に何かをした場合(例えば、顧客注文を作成する場合)、タイムアウトエラーの後、最初のリクエストが成功したかどうかをチェックして、複数の同じ順序。

希望は意味があります。私たちはいくつかの非友好的なAPIを使って作業しています。私たちにとって、私たちのコードの約80%はまさにこの種の@ @ $%を扱っています。

+0

私の現在の戦略は、コールを再度試みることです。これは問題の一部です。コールが成功するか失敗するかを判断するルールやメカニズムはないようです。 – user714852

+1

これは良い考えではありません。呼び出しが成功した可能性があります。呼び出しがオブジェクトなどのフォルダを作成する場合は、現在存在しています。 2回目の呼び出しで2番目のフォルダが作成されます。これは望ましくない可能性が高いです。 –

+0

良い点、前回の通話が最初に成功したかどうかを確認してください。 – user714852

関連する問題