Есть ли способ отслеживать запущенные очереди облачных задач в Google app engine, чтобы я мог узнать, когда они будут полностью выполнены?

# #python #google-app-engine #google-cloud-platform #task-queue #google-cloud-tasks

Вопрос:

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

В этом коде я запускаю очереди задач таким образом:-

 for item in listA:
  execute taskqueue1


inside taskqueue1 function:-

for b in listB:
 execute taskqueue2
 

Мне нужно выяснить, завершены ли все задачи в циклах listA и listB. Есть ли способ отслеживать статусы всех запущенных очередей задач?

Все очереди задач являются очередями push.

Ответ №1:

Просматривая документацию по Python,я нашел ссылку, которая может помочь вам в вашем случае: https://realpython.com/intro-to-python-threading/

В этой статье вы можете ознакомиться со следующими темами:

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

Если вы не уверены , хотите ли вы использовать Python threading, asyncio or multiprocessing , то вы можете проверить, как ускорить вашу программу на Python с помощью параллелизма:

https://realpython.com/python-concurrency/

Вот также учебник по репозиторию Python на Github, который может быть полезен: https://github.com/realpython/materials/tree/master/intro-to-threading

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

1. Большое вам спасибо за это, но это не сработает в облачных задачах