使用python django appengine的DeadlineExceededError

时间:2015-12-16 01:25:03

标签: python django google-app-engine

我正在运行一个使用django.test.client呈现页面的任务:

from django.test.client import Client

client = Client()
resp = client.get(path, HTTP_HOST=settings.STATIC_SITE_DOMAIN, secure=True)

这成功遍历页面并将它们呈现为静态文件。但是,随着网站规模的增加和页面加载时间的增加,它现在会抛出一个错误:

Rendering path /articles/funny-video-of-the-month/
Internal Server Error: /articles/ten-tips-for-december/
DeadlineExceededError: The overall deadline for responding to the HTTP request was exceeded.

我不知道这是AppEngine任务是否达到10分钟最大长度或实际页面http请求达到60秒限制。有关错误的文档在这里: https://cloud.google.com/appengine/articles/deadlineexceedederrors

stackoverflow还有其他潜在的修复方法,但它们通常都是urlfetch方法,我认为不会使用它。

以下是我能想到的一些潜在修复:

1)改变通过django.test.client发出的http请求的现有超时 https://github.com/django/django/blob/master/django/test/client.py https://github.com/django/django/blob/master/django/core/handlers/wsgi.py

2)将静态生成拆分为不同的任务,因此每个任务的运行时间不超过10分钟

3)尝试手动缩放选项 https://cloud.google.com/appengine/docs/python/modules/#Python_Instance_scaling_and_class

非常感谢任何有关如何修复的建议。

0 个答案:

没有答案