#java #google-app-engine #cron
# #java #google-app-engine #cron
Вопрос:
Я развернул и запланировал сбор данных Java-веб-приложения Fb на GAE, используя cron.xml . мое приложение собирает данные и загружает их в облачное хранилище Google.
Одно из ограничений GAE, которое я обнаружил при реализации, заключается в том, что окно приложения будет активным через задание cron только в течение 10 минут.
https://developers.google.com/appengine/docs/java/config/cron
Процесс сбора данных требует более 10 минут для сбора полных данных.
пожалуйста, предложите мне несколько альтернативных вариантов. и ссылочные ссылки, чтобы увеличить лимит времени на 10 минут.
Спасибо.
Ответ №1:
Вы можете выбрать экземпляр B-типа с базовым масштабированием для своего задания cron. У него нет ограничения в 10 минут:
Комментарии:
1. Или используйте очереди задач, которые обеспечивают более надежную реализацию (обработка по частям, повторная попытка при ошибке и т.д.)
2. @Zig: задачи имеют одинаковые временные ограничения в зависимости от их цели. Если это задание не может быть разделено на небольшие задачи, которые могут выполняться на F-экземпляре, тогда оно должно быть нацелено на B-экземпляр. Однако я согласен, что каждое задание, которое можно разделить, должно быть разделено с помощью задач.
3. Да, я предполагал, что его можно разделить.
4. я использовал push — очереди по умолчанию . с помощью метода queue.add(withurl(«»)) добавлен процесс сбора данных в TaskQueues и развернут его в GAE. в журналах ошибок он постоянно показывает ошибку post http / 1.1 200. и не загружает никаких данных в GCS. пожалуйста, помогите мне в решении этой проблемы.
Ответ №2:
Вы можете использовать библиотеку mapreduce (в данном случае только для этапа map) и предоставить свой собственный пользовательский ввод (уже есть вывод, который можно записать в GCS). Библиотека mapreduce также использует taskqueus, но она разбивает свою работу на столько задач, сколько необходимо.