Google App Engine任务队列:文件上传时的DeadlineExceededError

时间:2011-08-09 07:35:49

标签: google-app-engine task-queue

我上传了一个大文件。整个请求可能需要超过30秒的限制,因此我将其移至任务队列。问题是,即使在任务中,我仍然会收到此错误 我假设这是因为它是一个上传文件的单一请求,因此不能免受30秒的限制。有没有办法绕过这个限制,除了使用'后端'解决方案(App引擎刚添加了这个我认为,但它是一个付费功能,看起来有点复杂)?不幸的是,我无法拆分文件。

编辑:对不起,我很抱歉。通过上传,我的意思是上传到外国服务器。方案是我从数据存储中提取数据并将其上传到Google Docs Spreadsheets。即使它位于任务队列中,将其上传到Google文档的单个请求超过30秒并超时。

2 个答案:

答案 0 :(得分:3)

您可以获得两种类型的DeadlineExceeded - 一种是由于请求超时,另一种是由于URLFetch调用超时。任务队列的请求截止日期为10分钟,但URLFetch调用的默认截止时间为5秒,因此您几乎肯定会获得后者。

您可以通过提供timeout参数来增加URLFetch调用的截止日期。在交互式请求中限制为10秒,在任务队列请求中限制为10分钟。

答案 1 :(得分:0)

除请求时间限制外,还有一个请求 size 限制为32Mb。如果您超过此范围,则必须使用替代解决方案,如Blobstore或外部存储。