Я пытаюсь создать нетривиальное приложение GAE, и я не уверен, что мне нужно использовать задание cron, задачи, бэкенды или их совокупность, исходя из ограничения времени ожидания запроса, которое GAE имеет для HTTP-запросов.
Я должен сделать следующие шаги:
1) У меня более 15 000 сайтов, с которых мне нужно получать данные с регулярным графиком и без какого-либо взаимодействия с пользователем. Общее количество сайтов не становится статичным, но все они сохраняются в хранилище данных [Table0] вдоль интервала, с которым они читаются. Интервал может варьироваться от обычного до каждых 30 дней.
2) Для каждого сайта из шага # 1, который соответствует критериям расписания «извлечения», мне нужно извлечь данные из него через HTTP GET (опять же, это может быть все из них или всего 2 или 3 сайта). Как только я получу ответ от сайта, проанализируйте результат и сохраните эти данные в хранилище данных как [Table1].
3) Для всех данных, которые недавно были помещены в хранилище данных в [Table1] (они будут иметь специальный флаг), мне нужно отправить дополнительный HTTP-запрос на сторонний сайт, чтобы выполнить некоторую дополнительную обработку. Как только я получаю данные с этого сайта, я сохраняю всю необходимую информацию в другой таблице [Table2] в хранилище данных.
4) Как только данные будут доступны и готовы с шага № 3, мне нужно взять их все, выполнить дополнительное преобразование и обновить исходную таблицу [Table1] в хранилище данных.
Я не уверен, какой из различных компонентов мне нужно использовать, чтобы гарантировать, что я смогу выполнить каждую часть работы, не превышая крайний срок ответа, установленный на веб-запросы GAE. Я полагаю, что для запросов, инициированных заданиями и задачами cron, у вас есть 10 минут для его выполнения, тогда как для типичных пользовательских запросов разрешается 30 секунд.