Google app engine cronjob ограничение в 10 минут

#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 минут:

Модули App Engine на Java

Комментарии:

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, но она разбивает свою работу на столько задач, сколько необходимо.