com.google.apphosting.api.DeadlineExceededException
というのは知ってたんだけれど、最近ログに現れたcom.google.apphosting.runtime.HardDeadlineExceededError
というのは一体何?…と思い調べてみた。すると ajnk1 で話を聞いた bufferings さんのページを発見。 ほほう、30 秒ルールにひっかかって発生した DeadlineExceededException も、catch でつかまえたり、finally でロールバックしたりできるんだ。その処理に 300~400ms 近くかかってしまうと、次は HardDeadlineExceededError が出て有無を言わさず強制終了になってしまう…という理解でいいのかな。
300ms でできる処理って…。まあ何に使うのかわからないけど、一応覚えとこっと。 には、TaskQueue で呼ばれた Task で HardDeadlineExceededError が出た場合には、リトライがされないというような記述も。
としたら、DeadlineExceededException を catch とか、finally でロールバックとか、下手にしない方がいいのかも。
ぶいてくのたけざきです。
ReplyDelete再起動に時間がかかることはありますがExceptionをスローさえしてあげれば必ずリトライされます。(確認済)
コメントいただけるとは思っていませんでした。ありがとうございます。
ReplyDelete> Exceptionをスローさえしてあげれば必ずリトライされます。
Exception をスローせずに握りつぶしちゃうとリトライされないということですね。
Exception の catch や finally の処理中にこの Error が出てしまっても、Exception のスローはできるんでしょうか???
Error や Exception まわりのことをいまいちよく分かっていないのです(汗)。