Google AppEngine — использование очередей с параметром max_concurrent_requests, равным 1: процесс прекращен, так как срок запроса был превышен

Я настроил TaskQueue для своего API AppEngine. API обрабатывает большие запросы, и для завершения вычислений может потребоваться до трех часов, работая над одной задачей за раз.

Я установил для параметра «max_concurrent_requests» значение 1 в файле queue.yaml, чтобы одновременно была активна только одна задача, а также увеличил время ожидания пушки.

Моя проблема возникает из-за того, что запросы CloudTask имеют тайм-аут 10 минут, после чего они выдают ошибку: Процесс завершен, поскольку срок запроса был превышен. Убедитесь, что ваш HTTP-сервер прослушивает запросы на 0.0.0.0 и на порт, указанный в переменной среды PORT. (Код ошибки 123)

Как я могу настроить свою очередь на ожидание бездействия для завершения предыдущей задачи, а не просто на время ожидания?


person Guilherme Coppini    schedule 02.10.2019    source источник


Ответы (1)


Скорее всего, вы установили для элемента масштабирования службы App Engine значение "автоматическое масштабирование" (или не определили его, так как автомасштабирование является значением по умолчанию) в файле app.yaml.

Экземпляры в автомасштабировании имеют крайний срок 10 минут, как указано в документации здесь. Вам потребуется повторно развернуть службу с обновленным файлом app.yaml, установив для элемента масштабирования значение «масштабирование вручную» или «базовое масштабирование», чтобы ваши задачи могли выполняться до 24 часов.

person LundinCast    schedule 02.10.2019
comment
dispatch_deadline также содержит полезную информацию об этом. - person Averi Kitsch; 03.10.2019