0

В моей задаче очереди используется urlfetch, чтобы получить некоторые данные из внешнего API и сохранить их в объектах хранилища данных ndb.Задача приложения TaskQueue, влияющая на производительность пользовательских обработчиков

Это занимает около 15 секунд.

Как-то, когда задача запускается, все остальные обработчики (простые обработчики ответов json) становятся медленнее. (более медленное средство + 500 мс)

Что может быть причиной этого?

Разве идея фоновых задач не влияет на запросы пользователей.

Я наткнулся на this blogpost, но для выполнения моей задачи требуется более 1 секунды. Я не понимаю, как это поможет мне.

ответ

3

По умолчанию ваши задачи выполняются теми же экземплярами, которые обслуживают пользовательские запросы. Фон или нет, они имеют один и тот же процессор, память и пропускную способность. Это хорошая идея для выполнения этих задач на другом модуле, что означает другой экземпляр. Вы можете сделать это, указав цель для своей очереди задач.

Обратите внимание, что, как правило, автоматический планировщик App Engine будет вращать новый экземпляр, когда отклики ваших текущих экземпляров замедляются. Однако замедление в вашем случае вызвано не увеличением объема стандартных запросов, а необычным запросом, который занимает гораздо больше времени. Это не позволяет автоматическому планировщику реагировать на повышенные задержки. Вы можете переключиться на ручное или базовое планирование, которое даст вам больше контроля над пропускной способностью (общее количество экземпляров) и правилами для вращения новых экземпляров, но создание другого модуля для фоновых задач - лучшее решение.

+0

Большое спасибо! Это прекрасно работает. –

Смежные вопросы