DeadlineExceededErrorをキャッチして処理したいので、App Engineがデフォルトでスローする標準の「サーバーエラー」ページが表示されません。グローバルなDeadlineExceededErrorハンドラを設定するにはどうすればよいですか?
リクエストハンドラでDeadlineExceededErrorsがnot caught when overriding handle_exceptionであることがわかりました(私たちはすでにこれを行っています)。
私はそうのようなcustom error_handlers app.yaml configurationを使用するように、これまでのところ失敗し、試してみました:
error_handlers:
- error_code: timeout
file: timeout.html
...しかし、それはまた、私は何か間違ったことをやっている場合を除き、DeadlineExceededErrorsをキャッチしていないようです。
私は、特定の要求ハンドラ内DeadlineExceededErrorsをキャッチするために、次のパターンを使用することができることを承知しています:
class MainPage(webapp.RequestHandler):
def get(self):
try:
# Do stuff...
except DeadlineExceededError:
# Many Whelps! Handle it!
...しかし、私は自分のアプリケーション内のすべての単一の要求ハンドラにこれを追加することを避けるためにしたいと思います。
どのように私はこれらの難しい吸盤をグローバルに捕捉できますか?
はwebapp2をで、あなたが500ステータスコードを処理するためにエラーハンドラを設定することができます - 主にキャッチされなかった例外のために使用。 ifinstance(exception、DeadlineExceededError):...ドキュメントはここにあります:http://webapp-improved.appspot.com/guide/exceptions.html#exceptions-in- the-wsgi-app – moraes
私は実際にそれを知らなかった。はい、それはエラー処理を置くより適切な場所になります。 –
これは私が示唆しているものです。ただし、エラーのリダイレクトは送信しないでください。同じURLのエラーページを配信してください。 –