2011-08-30 26 views
0

在GAE這行代碼:GAE錯誤(錯誤代碼104),並創建一個新的斑點

FILE_NAME = files.blobstore.create(MIME_TYPE = '圖像/ PNG')

下降google.appengine.runtime.DeadlineExceededError

以下是完整的方法的代碼:

class UploadsHandler(JSONRequestHandler): 
    def upload_blob(self, content, filename): 
     file_name = files.blobstore.create(mime_type='image/png') 

     file_str_list = split_len(content, 65520) 

     with files.open(file_name, 'a') as f: 
      for line in file_str_list: 
       f.write(line) 

     files.finalize(file_name) 
     return files.blobstore.get_blob_key(file_name) 

記錄消息以:

處理此請求的進程遇到嚴重問題,導致它退出。這很可能會導致下一個請求應用程序使用新的進程。如果您經常看到此消息,則可能在應用程序初始化期間拋出異常。 (錯誤代碼104

完整的錯誤堆棧:

<class 'google.appengine.runtime.DeadlineExceededError'>: 
Traceback (most recent call last): 
    File "/base/data/home/apps/s~mockup-cloud/1.352909931378411668/main.py", line 389, in main 
    util.run_wsgi_app(application) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/util.py", line 98, in run_wsgi_app 
    run_bare_wsgi_app(add_wsgi_middleware(application)) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/util.py", line 116, in run_bare_wsgi_app 
    result = application(env, _start_response) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__ 
    handler.post(*groups) 
    File "/base/data/home/apps/s~mockup-cloud/1.352909931378411668/main.py", line 339, in post 
    original_key = "%s" % self.upload_blob(src) 
    File "/base/data/home/apps/s~mockup-cloud/1.352909931378411668/main.py", line 268, in upload_blob 
    file_name = files.blobstore.create(mime_type='image/png') 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/files/blobstore.py", line 68, in create 
    return files._create(_BLOBSTORE_FILESYSTEM, params=params) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/files/file.py", line 487, in _create 
    _make_call('Create', request, response) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/files/file.py", line 228, in _make_call 
    rpc.wait() 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 533, in wait 
    self.__rpc.Wait() 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_rpc.py", line 119, in Wait 
    rpc_completed = self._WaitImpl() 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/runtime/apiproxy.py", line 131, in _WaitImpl 
    rpc_completed = _apphosting_runtime___python__apiproxy.Wait(self) 

BLOB是同時文件上傳創建。其他應用程序的工作方式很好。看起來blobstore在30秒內沒有響應。

任何想法,爲什麼會發生這種情況? 謝謝!

+0

您可能需要發佈更多上下文的代碼。 –

+0

添加錯誤堆棧和方法代碼。謝謝! – kravc

回答

0

好像谷歌有自己的服務器的一些重新配置。現在一切都很好,就像以前一樣。

0

A runtime.DeadlineExceededError發生在您的請求處理程序執行時間過長時 - blobstore調用恰好是發生時正在運行的內容。你需要用appstats來分析你的處理器,看看它爲什麼如此緩慢。