Асинхронная запись в двоичный объект appengine и его завершение после завершения всех задач

У меня сложная проблема.

Я перебираю набор URL-адресов, параметризованных по дате, и выбираю их. Например, вот пример одного:

somewebservice.com?start=01-01-2012&end=01-10-2012

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

somewebservice.com?start=01-01-2012&end=01-05-2012

somewebservice.com?start=01-06-2012&end=01-10-2012

Я делаю это рекурсивно, пока результаты больше не усекаются, а затем пишу в большой двоичный объект, который позволяет выполнять параллельные записи.

Каждый из этих вызовов извлечения URL / записи BLOB-объектов обрабатывается в отдельной задаче очереди задач.

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

Есть ли какой-либо способ узнать, когда набор задач из очереди задач (и дочерних элементов, которые порождаются рекурсивно) завершены, чтобы я мог завершить работу с большим двоичным объектом и делать с ним что угодно?

Спасибо Джон

Ответы на вопрос(3)

Ваш ответ на вопрос