Как установить тайм-аут для urlfetch в Google App Engine?

Я пытаюсь иметь Django (сверху GAE) данные выборки из другого веб-сервиса. Я часто поражаюсь ошибкой как это:

ApplicationError: 2 приведенных к таймауту Запроса

Метод: ДОБРАТЬСЯ

Запросите URL:http://localhost:8080/

Тип исключительной ситуации: DownloadError

Значение исключения: ApplicationError: 2 приведенных к таймауту

Расположение исключительной ситуации:/google_appengine/google/appengine/api/urlfetch.py в _get_fetch_result, строка 325

Это чувствует, как будто это испытает таймаут только после 12 секунд (я не уверен, но это действительно коротко).

Вопрос: как я могу установить более долгий тайм-аут?

18
задан GRex 29 January 2010 в 13:14
поделиться

2 ответа

Всегда можно научиться использовать SHIFT + ENTER для однострочных возвращений и ENTER для абзацных возвращений. В этом отношении IE ведет себя как MS Word.

-121--3519709-

Доступ к элементам с помощью

double d = s->c[m*width+n];

Возможно, через встроенную функцию, чтобы избежать неожиданного поведения.

Компилятор не знает о ширине предполагаемого массива 2D. Он может интерпретировать (& s- > c) [m] [n] как s- > c [m + n] или как нечто совершенно иное.

-121--4222988-

Можно задать его с помощью аргумента deadline функции выборки . Из документов :

Крайний срок может составлять не более 60 секунд для обработчиков запросов и 10 минут для обработчиков заданий очереди и cron. Если крайний срок - Нет (None), крайний срок устанавливается равным 5 секундам.


Изменить: выглядит так, будто это изменилось. здесь :

Вы можете установить крайний срок для запроса, в течение которого служба будет ждать ответа. По умолчанию крайний срок выборки составляет 5 секунд. Можно настроить крайний срок по умолчанию для запросов с помощью функции urlfetch.set _ default _ fetch _ deadline () .

И на этой странице перечислены значения тайм-аута по умолчанию:

В настоящее время существует несколько ошибок с именем Ошибка Python для среды выполнения Python:

  • google.appengine.runtime.Ошибка : возникает, если общий запрос истекает, обычно через 60 секунд, или через 10 минут для просить очереди задач.
  • google.appengine.runtime.apiproxy _ errors.HCOerror : возникает, если RPC превысил установленный срок. Обычно это 5 секунд, но его можно настроить для некоторых API с помощью параметра «deadline».
  • google.appengine.api.urlfetch _ errors.OPerror : возникает при превышении времени ожидания URLFetch.
24
ответ дан 30 November 2019 в 06:07
поделиться

Это кажется коротким, но вы должны знать, что время ожидания запроса на GAE составляет около 30 секунд. Как вам, вероятно, нужно сделать некоторые операции по ответу вашего URLFetch, нет необходимости иметь время ожидания более 10 секунд.

-1
ответ дан 30 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: