DeadlineExceededError:使用Django的Google App Engine超过了响应HTTP请求的总期限

DeadlineExceededError:使用Django的Google App Engine超过了响应HTTP请求的总期限,django,google-app-engine,django-rest-framework,mysql-python,Django,Google App Engine,Django Rest Framework,Mysql Python,我正在尝试在Google应用程序引擎上托管一个API(使用Django rest框架)。在根域()没有问题,但是当我转到端点/产品/时,我遇到了一个server 500错误,并检查了日志,我看到了DeadlineExceededError:响应HTTP请求的总截止时间已超过错误 值得注意的是/产品在我的本地机器上按预期工作-并且在一秒钟内加载 跟踪堆栈如下所示: Traceback (most recent call last): File "/base/alloc/tmpfs/dynamic_

我正在尝试在Google应用程序引擎上托管一个API(使用Django rest框架)。在根域()没有问题,但是当我转到端点/产品/时,我遇到了一个server 500错误,并检查了日志,我看到了
DeadlineExceededError:响应HTTP请求的总截止时间已超过
错误

值得注意的是/产品在我的本地机器上按预期工作-并且在一秒钟内加载

跟踪堆栈如下所示:

Traceback (most recent call last):
File "/base/alloc/tmpfs/dynamic_runtimes/python27/6baee03590d046f1_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 267, in Handle
result = handler(dict(self._environ), self._StartResponse)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/wsgi.py", line 157, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/base.py", line 124, in get_response
response = self._middleware_chain(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/utils/deprecation.py", line 140, in __call__
response = self.get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/rest_framework/viewsets.py", line 87, in view
return self.dispatch(request, *args, **kwargs)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/rest_framework/views.py", line 471, in dispatch
response = handler(request, *args, **kwargs)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/rest_framework/mixins.py", line 48, in list
return Response(serializer.data)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/rest_framework/serializers.py", line 701, in data
ret = super(ListSerializer, self).data
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/rest_framework/serializers.py", line 240, in data
self._data = self.to_representation(self.instance)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/rest_framework/serializers.py", line 619, in to_representation
self.child.to_representation(item) for item in iterable
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/models/query.py", line 250, in __iter__
self._fetch_all()
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/models/query.py", line 1118, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/models/query.py", line 53, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/models/sql/compiler.py", line 887, in execute_sql
cursor = self.connection.cursor()
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/backends/base/base.py", line 254, in cursor
return self._cursor()
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/backends/base/base.py", line 229, in _cursor
self.ensure_connection()
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/base/data/home/apps/g~xxxxxx-xxxxxx-xxxxxx/20180401t160704.408718556380642667/lib/django/db/utils.py", line 86, in __exit__
dj_exc_value = dj_exc_type(*exc_value.args)
DeadlineExceededError: The overall deadline for responding to the HTTP request was exceeded.
似乎连接到db时出现问题,因此我将包含我的settings.py文件:

if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
    # Running on production App Engine, so connect to Google Cloud SQL using
    # the unix socket at /cloudsql/<your-cloudsql-connection string>
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': 'xx.xxx.xxx.xx',
            'NAME': 'products',
            'USER': 'xxx',
            'PASSWORD': 'xxx',
            'PORT': '3306'
        }
    }
和我的app.yaml文件:

runtime: python27
api_version: 1
threadsafe: true

handlers:

- url: /static
  static_dir: static

- url: /.*
  script: xxxxxxx_project.wsgi.application

libraries:

- name: django
  version: "latest"

- name: MySQLdb
  version: "latest"

env_variables:
    DJANGO_SETTINGS_MODULE: 'xxxxxxx_project.settings'
    CLOUDSQL_CONNECTION_NAME: xxxxxx-xxxxxx-xxxxxx:europe-west1:xxxxxxx-xxx
    CLOUDSQL_USER: xxx
    CLOUDSQL_PASSWORD: xxx

任何帮助都将不胜感激

修改settings.py文件使其通过套接字连接到云SQL可能是值得的。可以找到示例代码

如果这没有帮助-造成死线超标错误的原因不止一个;有关可能原因的更多详细信息,请参见,您可能会发现这些信息很有用

runtime: python27
api_version: 1
threadsafe: true

handlers:

- url: /static
  static_dir: static

- url: /.*
  script: xxxxxxx_project.wsgi.application

libraries:

- name: django
  version: "latest"

- name: MySQLdb
  version: "latest"

env_variables:
    DJANGO_SETTINGS_MODULE: 'xxxxxxx_project.settings'
    CLOUDSQL_CONNECTION_NAME: xxxxxx-xxxxxx-xxxxxx:europe-west1:xxxxxxx-xxx
    CLOUDSQL_USER: xxx
    CLOUDSQL_PASSWORD: xxx