В моем приложении у меня длинная задача, поэтому я разбил ее на n меньших задач. После выполнения этих n задач необходимо выполнить еще одну задачу, и это зависит от результатов этих n задач. Как достичь этой зависимости с помощью Task API? то есть выполнить одну задачу после других n задач.Google App Engine - Зависимость от задачи
ответ
Я думаю, что есть 2 метода, которые могут решить эту проблему. Пусть задача TD зависит от п других задач ТП, и существует очередь Q.
Push-н TA задачи в очереди на Q. Когда каждая задача TA заканчивает, он проверяет, является ли само по себе является последним в очередь Q. Если TA является последней задачей в очереди Q, она толкает TD в очередь Q.
Задайте задачи TA и TD в очередь Q. Когда TD запускается, он проверяет, завершена ли вся задача TA. Если какая-либо ТА не закончена, TD отменяет свое исполнение, возвращая любой код состояния HTTP за пределами диапазона 200-299.
Ключ из этих методов, чтобы получить ряд задач в Q. очереди Хотя я не пробовал, я знаю, что есть API Python предоставляет экспериментальный метод, чтобы получить TaskQueue ресурс конкретной очереди. Свойство stats.totalTasks - это общее количество очередей в очереди.
Пожалуйста, см http://code.google.com/intl/en/appengine/docs/python/taskqueue/rest.html
Посмотрите на GAE Pipeline API, он используется для создания сложных задач рабочего процесса, как тот, который вы описали.
Еще один подход может заключаться в том, чтобы добавить все задачи в очередь. Перед завершением введите информацию журнала первичных задач N в хранилище данных, что позволяет вам запрашивать хранилище данных, чтобы узнать, все ли они запущены.
Когда выполняется зависимая задача, он выполняет этот запрос хранилища данных, чтобы проверить, выполнены ли его условия (проверяется, что все начальные задачи зарегистрированы, что они завершены). Если нет, его нужно запустить позже.
Для выполнения этой задачи зависимая задача может добавить копию себя в очередь, которую планируется запустить через определенный промежуток времени. В качестве альтернативы (как в ответе выше) зависимая задача может завершиться с кодом состояния ошибки, и в этом случае она будет автоматически повторена в какой-то более поздней точке, если retry_limit для очереди или задачи не будет превышен.
- 1. Зависимость впрыска в (Python) Google App Engine
- 2. Объявить зависимость от Google App Engine с плюсом в целом
- 3. Google App Engine: задачи и потоки?
- 4. Фоновый поток Google App Engine против задачи
- 5. Каков размер задачи в Google App Engine
- 6. Зависимость задачи от Gulp
- 7. Веб-скребок с Google Engine Engine Engine/App Engine
- 8. Невозможно разрешить зависимость Dart App Engine
- 9. Google App Engine: добавить задачу в очередь из задачи
- 10. Google App Engine - получить от повторного StructuredProperty
- 11. Аутентификация Google App Engine Python от API
- 12. Отправляющий запрос от Google App Engine
- 13. db.UserProperty от Google App Engine с rpxnow
- 14. конечный запрос от datastore google app engine
- 15. Поддержка Django 1.5.1 от Google App Engine
- 16. Whitelable Исходящая почта от Google App Engine
- 17. Насколько сложно перемещаться от Google App Engine?
- 18. Проблема установки Google App Engine от MSI
- 19. Получение от android к Google app engine
- 20. Листы API от Google App Engine
- 21. http-запрос от Google App Engine
- 22. Google App Engine изолирован от приложения
- 23. Развертывание в Google App Engine от Cloudbees
- 24. Отправка потокового письма от Google App Engine
- 25. Call APIs от Google App Engine
- 26. Служить несколькими портами от Google App Engine
- 27. XStream и Google App Engine
- 28. google app engine jsonpickle
- 29. google app engine datastore
- 30. Google App Engine PHPBB
Задайте вопрос, который похож на ваш. http://stackoverflow.com/questions/4224564/calling-a-script-after-tasks-queue-is-empty – jftsai