В идеале я бы посоветовал вам создать вашу модель данных таким образом, чтобы все элементы, о которых нужно было сообщить, можно было предварительно рассчитать, чтобы минимизировать количество запросов, которые необходимо выполнить в базе данных. Похоже, вы не сможете этого сделать, и в любом случае это подход, который может быть хрупким и устойчивым к изменениям.
С выпуском версии 1.3.1 SDK у вас теперь есть доступ к курсорам запросов , что значительно упрощает создание отчетов на основе большого количества пользователей. , Вы можете использовать appengine cron jobs , чтобы поместить работу в очередь задач , чтобы вычислить числа для отчета.
Поскольку любой заданный вызов вашей задачи вряд ли будет завершен в то время, когда AppEngine позволяет ему выполняться, вам придется передавать курсор запроса от одного экземпляра к другому, пока он не завершится.
Этот подход позволяет вам адаптироваться к изменениям в вашей базе данных и потребностям в отчетах, так как вы можете записать ту задачу, которая довольно легко вычисляет значения отчета.