【发布时间】:2019-04-05 03:36:57
【问题描述】:
为什么我在 App Engine 上从 defer(仅限)内发出 HTTP 请求时会看到“已超出截止日期”HTTPException?当我使用 urllib2(见下文)发出请求时,我设置了超时(540 秒),但我的请求在 180 秒左右超时。使用 Cloud SDK 和 Djangae,同样的请求在本地也能正常工作。
req = urllib2.Request(
settings.ENDPOINT,
json_data,
{
'Content-Type': 'application/json',
'X-API-KEY': settings.SOME_KEY,
}
)
response = urllib2.urlopen(req, timeout=settings.SOME_TIMEOUT)
更新:
我还尝试通过set_default_fetch_deadline 将全局google.appengine.api.urlfetch 超时设置为540,但没有成功。
【问题讨论】:
-
您是在问为什么它在 180 秒后超时(而不是您指定的 540 秒),还是在问它为什么会出现“超出截止日期”异常?即,在本地运行时,请求是否在合理的时间(
-
嗨,@MykWillis。如果我设置的超时远高于此,我在问为什么请求会在约 180 秒后超时。
标签: google-app-engine urllib2 djangae