2012-02-20 4 views
2

AppEngineでリクエストを完了するまでに時間がかかります(数秒かかる)。ユーザーやネットワークの問題が既に要求を中止したかどうかを検出する方法はありますか?これにより、結果生成を継続するサーバ負荷を自分で節約することができます。結果の生成は、とにかくどこにも行かないでしょう。AppEngineでクライアントが中止したリクエストを検出する

(それが生産モードで異なる動作をするかどうかはまだ確認されていない)私はのDev-モードで次のことを試してみましたが、どちらも働いた:

  • をresp.getOutputStreamはIOExceptionを
  • を投げずに完了したかどうかをチェックします私は本当にspecif午前:割り込みがあったかどうかをチェックするサーブレットスレッドに

おかげで、マルクス

PSを送りましたこの質問に興味があります。私のアプリを再構築してリクエストを速くしたり、アボートやその他のことを防ぐ方法ではありません。

答えて

1

いいえ、アプリ内からこれを検出する方法はありません。私はそれについて心配しません。

2

App Engineではこれがまったく可能かどうかわかりませんが、アプリエンジンは進行中のリクエストを許可していません。応答は、ハンドラ/ servlatが返された後にクライアントに送信されます。

0

これは遅くなりますが、これは役に立つかもしれません。 Golangでは、Contextパッケージを使用して割り込みを検出できます。ここで

がフランチェスクCampoyの便利な動画はそれを説明している。この一方で

https://www.youtube.com/watch?v=LSzR0VEraWw

+0

が理論的に質問に答えること、[それが望ましいだろう](// meta.stackoverflow.com/q/8259)ここに答えの本質的な部分を含めて、参考のためのリンクを提供してください。 *より良い* "リンクベースの"回答を書く方法については、[here](https://meta.stackexchange.com/a/94027/285661)を参照してください。ありがとう! – GhostCat

関連する問題