システムが 500 をスローしても、http 要求ステータスを 200 に設定することは可能ですか? 実行中のタスクがあります。GAE が http リクエスト 500 をスローするとき、タスクが再試行されないように、タスクの最後に手動で 200 に設定したいと考えています。
1 に答える
3
200 ステータス コードを返す典型的なパターンは、コードをtry
andexcept
節で囲むことです。
try:
do your stuff
except:
logging.error("Something bad happened")
この例では、常に を返すすべての例外をキャッチ200 status code
します。アプリケーションでは、キャッチする例外の適切なリストを追加することができます。特定の種類の一時的な例外では、App Engine にタスクを再試行するよう暗黙的に指示する 500 エラーを発生させるのが正しいです。
編集:
正しく提案されているように、スタックトレースをログに含めるlogging.exception
代わりに使用する必要があります。logging.error
try:
do your stuff
except:
logging.exception("Something bad happened") #It will log the stacktrace too
これには 2 番目の利点があります。ereporterサービスを有効にすると、電子メールでログ レポートを受け取ることができます。
于 2011-01-13T08:03:34.507 に答える