Альтернатива облачным задачам / Cron / очереди задач на CGP в Python 3, у которой нет 10-минутного тайм-аута

#python-3.x #google-cloud-platform #cron #google-cloud-tasks

# #python-3.x #google-облачная платформа #cron #google-cloud-tasks

Вопрос:

Недавно я начал использовать движок приложений на облачной платформе Google и настроил несколько заданий cron для выполнения запланированной работы. Однако недавно одна из моих задач заняла более 10 минут, и время ожидания истекло … очевидно, я мог бы разбить эту работу на пакеты или найти другой способ решения проблемы, однако я стремлюсь не всегда помнить о том, сколько времени может занять задание, и хочу, чтобы будущие задания выполнялись до завершения или сбоя.

Я изучил различные сервисы, предлагаемые Google, но безуспешно; Очередь задач — это только Python 2.x, а облачные задачи имеют тот же 10-минутный лимит, если вы не управляете масштабированием вручную (что я бы предпочел сделать автоматическим, поскольку для меня это суть App Engine).

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

https://cloud.google.com/tasks/docs/creating-appengine-handlers

Спасибо за ваше время.

Ответ №1:

Сервисы Google, такие как App Engine, предназначены для моделирования HTTP-запроса / ответа веб-сервера. Вы пытаетесь использовать их в качестве движков задач / выполнения.

Используйте правильный сервис, если вам требуется длительное время выполнения, что обычно означает, что выполнение запросов занимает больше времени, чем несколько минут. Используйте облачные задачи и вычислительный движок. В противном случае вам нужно будет спроектировать свое приложение в соответствии с требованиями и ограничениями App Engine.

Облачные задачи для асинхронного выполнения задач

Комментарии:

1. Спасибо, Джон, я посмотрю на вычислительный движок

Ответ №2:

Если вы хотите использовать App Engine, вам нужно использовать либо базовое масштабирование, либо масштабирование вручную. Я понимаю, что ручное масштабирование вам не нравится, мне тоже не нравится этот режим. Но базовое масштабирование приемлемо.

Кроме того, он больше предназначен для выполнения фоновой задачи, именно того, чего вы пытаетесь достичь.

Если вы принимаете это изменение, вы можете использовать Cloud Task . У вас есть до 24 часов тайм-аута, если ваша служба App Engine находится в базовом масштабировании (или вручную)

У вас есть та же информация в описании масштабирования в документации App Engine.

При использовании базового масштабирования тип вашего экземпляра необходимо обновить до BXXX.

Комментарии:

1. Большое спасибо, я изучу различия между basic и automatic и посмотрю, подходит ли это… но я надеюсь, что добавление Compute Engine рядом с моим App Engine может решить эту проблему без изменения настроек масштабирования.

2. Убедитесь, что вы хотите использовать вычислительный движок: вы доступны только на уровне зоны (вместо регионального с app engine), вам необходимо управлять своей сетью, правилами брандмауэра, обновлениями и исправлениями вашей ОС, осуществлять мониторинг и перезапуск в случае сбоя (….). Бессерверный — этотак хорошо упростить вашу жизнь!!!