我正在运行一个使用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
非常感谢任何有关如何修复的建议。