Python Appengine任务在抛出DeadLineExceederRor之前运行5秒

Python Appengine任务在抛出DeadLineExceederRor之前运行5秒,python,google-app-engine,Python,Google App Engine,我最近将一个应用程序从使用后端转换为模块。我使用后端处理长时间运行的请求,主要是获取对外部url的请求(使用请求库)。由于更改了我的应用程序,使所有内容都在单个默认模块上运行,因此我的死线超过了DederRor。i、 e DeadlineExceededError('The API call urlfetch.Fetch() took too long to respond and was cancelled. 我在报纸上读到: HTTP请求的60秒截止时间,任务的10分钟截止时间 我正在运行

我最近将一个应用程序从使用后端转换为模块。我使用后端处理长时间运行的请求,主要是获取对外部url的请求(使用请求库)。由于更改了我的应用程序,使所有内容都在单个默认模块上运行,因此我的死线超过了DederRor。i、 e

DeadlineExceededError('The API call urlfetch.Fetch() took too long to respond and was cancelled.
我在报纸上读到:

HTTP请求的60秒截止时间,任务的10分钟截止时间

我正在运行的请求作为任务运行(使用deferred.defer(…)。但是,任务开始于,例如,15:51:54.489,结束于15:51:59.600-在抛出错误之前总共5秒

在app.yml中,自动缩放已启用,如下所示:

automatic_scaling:
  min_idle_instances: 1
  max_idle_instances: 1
  max_pending_latency: 1s

我不清楚为什么会抛出这个截止日期错误。您能告诉我如何避免抛出此错误吗?

正如异常所述,错误来自
urlfetch.Fetch
,每个出站HTTP请求都会在App Engine上路由,即使您使用
urllib
请求
或其他库。而
urlfetch
的默认
deadline
5秒。因此,问题是您对外部URL的HTTP请求正在超时。它似乎与从后端到常规实例的切换无关。可能是巧合


概述了
DeadlineExceededError

日志背后的各种类型的错误。对于此类异常,日志可能不是很明确,您可能希望查看此线程并对其进行解释:通过设置urlfetch,问题似乎已得到解决。设置默认值\u fetch\u截止日期(600)在requests init.py和appengine_config.py中。