Очередь задач Google App Engine: DeadlineExceededError при загрузке файла - PullRequest
1 голос
/ 09 августа 2011

У меня большой файл, который я загружаю.Весь запрос может занять более 30 секунд, поэтому я переместил его в очередь задач.Проблема в том, что я все еще получаю эту ошибку, даже в задаче.
Я предполагаю, что это потому, что это один запрос на загрузку файла, и из-за этого он не защищен от ограничения в 30 секунд.Есть ли способ обойти этот предел, кроме использования «бэкэнда» (думаю, движок приложений только что добавил это, но это платная функция и выглядит немного сложнее)?Я не могу разделить файл, к сожалению.

РЕДАКТИРОВАТЬ: Извините за путаницу.Под загрузкой я подразумеваю загрузку на сторонний сервер.Сценарий заключается в том, что я извлекаю данные из хранилища данных и загружаю их в таблицы Google Docs.Один запрос на загрузку его в Документы Google, даже если он находится в очереди задач, превышает 30 секунд и время ожидания истекло.

Ответы [ 2 ]

3 голосов
/ 10 августа 2011

Существует два типа DeadlineExceeded, которые вы можете получить - один из-за тайм-аута запроса, а другой из-за тайм-аута вызова URLFetch.Крайние сроки запроса в очереди задач составляют 10 минут, но по умолчанию крайний срок для вызова URLFetch составляет 5 секунд, так что вы почти наверняка получите последний.

Вы можете увеличить крайний срок вашего вызова URLFetch, предоставивtimeout параметр.Это ограничено 10 секундами в интерактивном запросе и 10 минутами в запросе очереди задач.

0 голосов
/ 09 августа 2011

Помимо лимита времени запроса, есть также запрос размер лимит 32 Мб. Если вы превышаете это значение, вы должны использовать альтернативное решение, например Blobstore или внешнее хранилище.

...