2013-07-31 14 views
2

由于数据存储在Google AppEngine上的所有应用程序版本之间共享,我最近创建了一个单独版本的应用程序,我将其用于特殊用途。然而,我已经注意到,尽管这个版本执行的代码与生产版本差不多,但它对客户端请求的反应要比生产慢得多,某些请求通常导致DeadlineExceededErrorGAE数据存储在非生产应用程序版本中的读/写延迟

,现在我可以在我的日志观察一个典型的错误是这样的:

... 
friend.put() 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/db/__init__.py", line 1070, in put 
    return datastore.Put(self._entity, **kwargs) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/datastore.py", line 579, in Put 
    return PutAsync(entities, **kwargs).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/datastore/datastore_rpc.py", line 1601, in __put_hook 
    self.check_rpc_success(rpc) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 1234, in check_rpc_success 
    rpc.check_success() 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 576, in check_success 
    self.wait() 
    File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 550, in wait 
    assert self.__rpc.state != apiproxy_rpc.RPC.IDLE, repr(self.state) 
DeadlineExceededError 

我的问题是:它可以是GAE数据存储区操作等待时间会持续增大,在非生产应用程序的版本是这样吗?如果是这样,在仍使用非生产应用程序版本的情况下是否有解决此问题的好方法?

+0

我从来没有遇到过这样的事情,我总是单独测试新版本,并像缺省版本一样工作。 – Faisal

回答

0

那些包含DeadlineExceededError的条目的日志条目是否也包含此消息?

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.

也许这就是导致它走过去的时间限制。

另一种选择是设置Appstats并准确查看所花时间。

+0

不,它不是 - 只是我上面指出的纯粹的错误信息 –