응용 프로그램이 처음으로 새 인스턴스를 시작할 때 DeadlineExceededError가 발생합니다. 브라우저에서 새로 고침을하면 잘 작동하며 시도한 페이지는 중요하지 않습니다. 이상한 것은 모든 디버깅 코드를 잘 볼 수 있다는 것입니다. 실제로 self.response를 호출하기 직전에 로그에 기록하고 콘솔의 로그에 표시합니다. 내가 개발 환경의 모든 페이지로드 문제가 아니에요 때문에 이것은, 문제를 해결하는 데 매우 단단하고, 역 추적은 나에게 약간 불투명 :DeadlineExceededError (webapp2 사용)
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
로깅 사이의 거의 전체 분있다 볼 수 있습니다
"출력을 쓰기가!" self.response가 호출되기 직전과 오류가 발생할 때.
나는이 내용을 읽었지만 적용할만한 것은 확실하지 않습니다. 나는 많은 모듈을 가져 오지 않을 것이고, 예열 요청이 여기에서 도움이 될지 확신하지 못한다. 살아있는 인스턴스가 없을 때 일어나는 일이기 때문이다. (현재 사용자와 테스트 중이며 아직 트래픽이 많지 않습니다.) 로그에 모든 라이브러리를로드 한 시점까지 기록 할 수 있다는 사실도 있습니다. 최대 시간이 60 초라면 내 코드가 실행되는 데 3 초 밖에 걸리지 않으며 self.response가 호출 된 후 시간이 초과되었음을 추론 할 수 있습니다. –
좋아, 알았어. 예열 요청을 켜기 때문에 최소한의 유휴 인스턴스를 설정할 수있었습니다. 1로 설정 했으므로 이제는 페이지를 잘로드 할 수 있습니다. 나는 아직도 내가 말할 수있는 것부터 내 코드가 처음으로 회전 할 때 3 초 정도만 걸린다는 점에서이 작업을 수행하는 것이 약간 이상하다고 생각한다. –
인스턴스를 시작하지 않으므로 분 유휴 인스턴스를 켜면 문제가 숨겨집니다. 로드가 올라가고 새로운 무언가를 시작해야 할 때까지도이 문제가 계속 발생합니다. 적어도, 당신은 appstats 모듈을로드하고있다. 시작하도록 설정을 해제하십시오. 간접적으로 가져 오는 몇몇 모듈은 다른 많은 모듈을 가져올 수도 있습니다. – dragonx