Как я могу узнать, завершен ли набор задач ядра приложения? - PullRequest
1 голос
/ 23 января 2012

Если у меня есть цикл, который ставит в очередь, скажем, 100 задач, и каждая из этих задач потенциально ставит в очередь задачу, как я могу определить, все ли задачи выполнены?

Я думал об этой проблеме с помощью ShardedCounters.После того, как каждая задача будет выполнена, я мог бы увеличить счетчик, а затем проверить, есть ли счет == 100. Конечно, это не так, как задачи, порождающие их собственные задачи, если я не попаду в этот сценарий рекурсивного подсчета.Я не уверен, что это хорошая идея - спускаться по этой кроличьей норе, потому что кажется, что осколки счетчиков не являются атомными.

Ответы [ 2 ]

1 голос
/ 23 января 2012

Вы должны взглянуть на новый API-интерфейс конвейера AppEngine .Это способ связать воедино дорогостоящие задачи и уведомить, когда они будут выполнены.Есть также отличное видео с конференции Google IO , которое демонстрирует это.

0 голосов
/ 23 января 2012

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

http://code.google.com/appengine/docs/python/taskqueue/rest.html#method_taskqueue_tasks_list

...