1

アプリケーションが初めて新しいインスタンスを起動すると、DeadlineExceededError が発生します。ブラウザで更新を押すと、問題なく動作し、どのページを試しても問題ありません。奇妙なことに、すべてのデバッグ コードを正常に表示できます。実際、self.response を呼び出す直前にログに書き込むと、コンソールのログに表示されます。開発環境でページ読み込みの問題が発生していないため、これをトラブルシューティングするのは非常に困難であり、トレースバックは私には少し不透明です。

E 2013-09-29 00:10:03.975
Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 267, in Handle
    for chunk in result:
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 1286, in appstats_wsgi_wrapper
    end_recording(status)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 1410, in end_recording
    rec.save()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 654, in save
    key, len_part, len_full = self._save()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/appstats/recording.py", line 678, in _save
    namespace=config.KEY_NAMESPACE)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/memcache/__init__.py", line 1008, in set_multi
    namespace=namespace)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/memcache/__init__.py", line 907, in _set_multi_with_policy
    status_dict = rpc.get_result()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 612, in get_result
    return self.__get_result_hook(self)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/memcache/__init__.py", line 974, in __set_with_policy_hook
    rpc.check_success()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 578, in check_success
    self.__rpc.CheckSuccess()
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_rpc.py", line 133, in CheckSuccess
    raise self.exception
DeadlineExceededError

I 2013-09-29 00:10:03.988
This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.

エラーはすべてのコードが既に実行されているように見えるため、これをデバッグする方法さえわかりません。

編集:これを追加する必要があります:

I 2013-09-29 00:09:06.919
  DEBUG: Writing output!
E 2013-09-29 00:10:03.975

「Writing output!」のロギングの間にほぼ 1 分あることがわかります。self.response が呼び出される直前、およびエラーが発生したとき。

4

1 に答える 1

0

フロントエンド インスタンスへのリクエストが 60 秒以内に応答を取得しない場合、App Engine でDeadlineexceedederrorが発生します。したがって、実行中のインスタンスがなく、アプリが新しいユーザー要求を受け取ると、処理のために新しいインスタンスが開始されるということが、あなたのケースで起こっているに違いありません。これはオーバーオールにつながりresponse time = instance startup time like library loading and initial data access + the time for processing the user request、締め切り超過エラーが発生します。次に、アプリにすぐにアクセスすると、すでに実行中のインスタンスがあるためresponse time = the time for processing the user request、エラーは発生しません。

ライブ ユーザー リクエストが到着する前にインスタンスを準備しておくような、ウォームアップ リクエストを含む、deaddeexceedederrorを処理するための推奨されるアプローチを確認してください。

于 2013-09-29T08:32:44.380 に答える