API облачных задач для python2.7 google app engine - PullRequest
2 голосов
/ 25 июня 2019

Я создал проект под Google App Engine Python 2.7.Я создал несколько задач с использованием queue.yaml и развернул их с помощью команды glcoud.Когда я захожу в консоль Google App Engine в разделе «Taskqueues», он перенаправляется на страницу облачных задач.Я вижу, что мои очереди App Engine перечислены в разделе Облачные задачи.

Я все еще не включил службу «Cloud Tasks API», но когда я запускаю фоновую задачу, какая служба обрабатывает очередь?Тогда, если я хочу использовать службу облачных задач с App Engine Python 2.7, как мне поступить?

Я следовал документации https://cloud.google.com/tasks/docs/dual-overview, в которой для Python 2.7 мы можем получить доступ к службе облачных задач через API очереди задач ядра приложения.Есть некоторые ключевые особенности, использующие сервис API Cloud Tasks, такие как отложенные очереди.Я просто хочу убедиться, что эти функции будут доступны при переходе на облачные задачи.Как могут сосуществовать обе службы?

Ответы [ 2 ]

1 голос
/ 27 июня 2019

В сервисах GAE (python 2.7) стандартной среды 1-го поколения вы должны продолжать использовать API очереди задач, для него нет примечаний по устареванию.

API очереди задач недоступен в других средах, поэтому для этих служб необходимо использовать более новый API облачных задач (который, по крайней мере, изначально был основан на стандартной среде среды 1-го поколения, но теперь он поддерживает несколько Конечные точки HTTP).

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

Вы не можете точно говорить о том, какая служба обрабатывает очередь, поскольку задачи в одной и той же очереди могут обрабатываться разными службами. Например, в очереди отправки GAE есть 3 способа для нацеливания на задачу:

  • Объявите цель при создании задачи. Вы можете установить цель явно, используя параметр target в taskqueue.add () функция. См. Пример выше.
  • Включите директиву target при определении очереди в queue.yaml, как в определении из queue-blue. Все задачи добавленный в очередь с target будет использовать эту цель, даже если другая цель была назначена задаче во время строительства.
  • Если цель не указана в соответствии с одним из двух предыдущих методов, то целью задачи является версия службы, которая ставит в очередь это. Обратите внимание, что если вы ставите задачу из службы по умолчанию и версия таким образом, и версия по умолчанию изменяется до задание будет выполнено, оно будет запущено в новой версии по умолчанию.

В облачных задачах таргетинг еще шире - цель задачи даже не обязательно является службой GAE. От Очереди облачных задач с целями HTTP :

В случае общих целей HTTP служба облачных задач переадресует запрос задачи к работнику, расположенному в любой общей конечной точке HTTP, такие как Облачные функции , Облачный прогон , GKE , Compute Движок или даже предварительный веб-сервер, и в зависимости от того, как задача настроен.

Отложенные очереди также вводят в заблуждение, вы должны ссылаться на отложенные задачи. В целом, есть две основные причины их использования:

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

0 голосов
/ 27 июня 2019

«API облачных задач» предоставляет REST API, который можно использовать для добавления задач из среды выполнения стандартной среды App Engine второго поколения, из любой среды выполнения гибкой среды App Engine или даже из-за пределов App Engine.

Когда вы создаете очереди извлечения App Engine первого поколения, вы избегаете необходимости использовать этот API напрямую, однако создаваемые задачи находятся в той же службе, как если бы вы создавали их с помощьюAPI облачных задач.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...