Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 即使在后端运行TaskQueue,也会出现超过截止日期的错误_Python_Google App Engine - Fatal编程技术网

Python 即使在后端运行TaskQueue,也会出现超过截止日期的错误

Python 即使在后端运行TaskQueue,也会出现超过截止日期的错误,python,google-app-engine,Python,Google App Engine,我遇到了一些问题,超过了截止日期错误。基本上,我正在使用Mechanize在URL中进行一些Web垃圾处理。所以当你尝试表演的时候 br.open(url) 我有这个错误 HTTPException:等待来自的HTTP响应时超过了截止日期 URL:我的URL 我已经阅读了where,它说要使用后端(我使用的是一个动态后端,B4_1G类,有5个实例),但是在60秒内仍然会发生这个错误。根据文档,当使用任务队列和后端时,超时时间应延长到10分钟 下面是我如何将操作分配到TaskQueue上运行,其

我遇到了一些问题,超过了截止日期错误。基本上,我正在使用Mechanize在URL中进行一些Web垃圾处理。所以当你尝试表演的时候

br.open(url)
我有这个错误

HTTPException:等待来自的HTTP响应时超过了截止日期 URL:我的URL

我已经阅读了where,它说要使用后端(我使用的是一个动态后端,B4_1G类,有5个实例),但是在60秒内仍然会发生这个错误。根据文档,当使用任务队列后端时,超时时间应延长到10分钟

下面是我如何将操作分配到TaskQueue上运行,其目标位于后端的第一个实例上

taskqueue.add(url='/crons/myworker', target='1.myworker')
这是后端。yaml

backends:
- name: myworker
  class: B4_1G
  instances: 5
  options: dynamic

你知道会发生什么吗?谢谢。

在app engine上,任何涉及通过HTTP获取数据的请求都不会超过60秒

10分钟的限制是指任务本身——它们最多可以运行10分钟

因此,GAE可能不是这里的最佳选择,因为如果您的请求平均耗时超过60秒,您只能使用它提供的urlfetch等版本

您可以设置请求的截止日期,即请求的最长时间 服务将等待响应。默认情况下,获取的截止日期 是5秒。HTTP请求和请求的最大截止时间为60秒 10分钟用于任务队列和cron作业请求


因此,一个任务最多可以运行10分钟,一个url获取最多可以运行60秒。无论从前端还是后端执行urlfetch操作,限制都是相同的

在app engine上,任何涉及通过HTTP获取数据的请求都不会超过60秒

10分钟的限制是指任务本身——它们最多可以运行10分钟

因此,GAE可能不是这里的最佳选择,因为如果您的请求平均耗时超过60秒,您只能使用它提供的urlfetch等版本

您可以设置请求的截止日期,即请求的最长时间 服务将等待响应。默认情况下,获取的截止日期 是5秒。HTTP请求和请求的最大截止时间为60秒 10分钟用于任务队列和cron作业请求


因此,一个任务最多可以运行10分钟,一个url获取最多可以运行60秒。无论从前端还是后端执行urlfetch操作,限制都是相同的

我感谢你的帮助,你真的消除了我的一些疑虑。但是,当你说“因为你只能使用它提供的urlfetch版本,所以GAE可能不是这里的最佳选择”,你是说我应该使用另一个云服务?难道没有另一种方法来执行这样的操作吗?问题不是查询延迟超过60秒。链接大部分时间运行良好,但有些请求持续时间超过60秒,这就是我在这里面临的问题。IDK,可能他们的服务器很慢,等等。所以没有任何方法,可能在错误发生后重试。谢谢。是的,我的理解是60秒对于那些请求来说是一个很难的限制,没有办法。所以如果这会成为一个问题,现在就改变吧因此,回复失败的查询可能是一种很好的方法,在任何情况下都可能是一个好主意。我感谢你的帮助,你真的消除了我的一些疑虑。但是,当你说“因为你只能使用它提供的urlfetch版本,所以GAE可能不是这里的最佳选择”,你是说我应该使用另一个云服务?难道没有另一种方法来执行这样的操作吗?问题不是查询延迟超过60秒。链接大部分时间运行良好,但有些请求持续时间超过60秒,这就是我在这里面临的问题。IDK,可能他们的服务器很慢,等等。所以没有任何方法,可能在错误发生后重试。谢谢。是的,我的理解是60秒对于那些请求来说是一个很难的限制,没有办法。所以如果这会成为一个问题,现在就改变吧因此,重试失败的查询可能是一种很好的方法,而且在任何情况下都可能是一个好主意。