Добрый день,API для API приложений Google: Выполнение больших задач
Я запускаю back-end для приложения в качестве механизма приложения (Java). Используя конечные точки, я получаю запросы. Проблема в том, что мне нужно вычислить что-то большое, но мне нужно быстрое время отклика для интерфейса. Поэтому, как решение, я хочу прекомпопулировать что-то и сохранить в нем выделенный memcache.
Способ, которым я это сделал, заключается в добавлении в статический блок и последующем выполнении отложенной задачи в очереди по умолчанию. Есть ли лучший способ вычислить что-то при запуске?
Теперь эта отложенная задача выполняет большое количество операций хранилища данных. Иногда они тайм-аут. Поэтому я создал систему, в которой он повторяет тайм-аут до тех пор, пока он не удастся. Однако, когда я запускаю движок приложения, он немедленно создает две отложенные задачи. Он также продолжает повторять задачи, когда они терпят неудачу, несмотря на то, что я установил DeferredTaskContext.setDoNotRetry (true) ;.
Честно говоря, отложенные задачи чувствуют себя очень искусно.
Я просто хочу запустить метод, который занимает> 5 минут (вероятно, дольше по мере роста набора данных). Я хочу запустить этот метод при запуске, а затем на регулярной основе. Как бы вы это сформулировали? Моей первой мыслью была работа cron, но они ограничены во времени. Мне понадобилось бы задание cron, выполняющее отложенную задачу, надеясь, что они не набудут что-то, не создадут дубликаты или не начнут повторять попытку.
Спасибо за помощь и хороший день.
Dries
Задачи cron имеют тот же крайний срок, что и отложенные задачи – Greg
Как вы собираетесь делиться/получать доступ к этим данным (классификатору) через экземпляры. Помните, что каждый экземпляр имеет свою собственную память. Поэтому на данный момент я предполагаю, что вы начинаете эту сборку каждый раз, когда запускается экземпляр. После обработки он может быть сериализован до <1 МБ, если нет, тогда вам понадобится разделить сериализованный объект и сохранить его в кусках (в хранилище данных). Получить от datatstore не намного медленнее, чем memcache и является надежным. –
Это моя главная проблема, она не может быть легко сериализована в одном блоке в хранилище данных. поэтому в любом случае мне придется выполнять какую-то периодическую операцию. –