【问题标题】:GAE error (Error code 104) while creating a new blob创建新 blob 时出现 GAE 错误(错误代码 104)
【发布时间】:2011-11-06 21:29:54
【问题描述】:

在 GAE 上这行代码:

file_name = files.blobstore.create(mime_type='image/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 秒内没有响应。

任何想法为什么会发生这种情况? 谢谢!

【问题讨论】:

  • 您可能需要为上下文发布更多代码。
  • 添加错误堆栈和方法代码。谢谢!

标签: google-app-engine blobstore


【解决方案1】:

看来你不是唯一一个遇到这个问题的人:

http://groups.google.com/group/google-appengine/browse_thread/thread/27e52484946cbdc1#
(今天发布)

【讨论】:

  • 目前唯一的选择是部署一个新的应用程序。感谢您的链接!
【解决方案2】:

Google 似乎对他们的服务器进行了一些重新配置。现在一切正常。

【讨论】:

    【解决方案3】:

    当您的请求处理程序执行时间过长时会出现runtime.DeadlineExceededError - blobstore 调用恰好是发生这种情况时正在运行的内容。您需要使用 appstats 分析您的处理程序,以了解它为何如此缓慢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-25
      • 2018-03-13
      • 1970-01-01
      • 2021-04-15
      • 2021-02-23
      • 1970-01-01
      • 2018-03-02
      • 2015-09-03
      相关资源
      最近更新 更多