php.net предлагает использовать отражения, чтобы выяснить, содержит ли переменная корректное замыкание или нет
Я использую этого маленького помощника
function isClosure($suspected_closure) {
$reflection = new ReflectionFunction($suspected_closure);
return (bool) $reflection->isClosure();
}
Для часто используемых агрегатов лучше всего обновлять их при каждом обновлении / вставке / удалении.
Если вы не разработали такие агрегаты в своем приложении с самого начала, вы можете запустить скрипт через Remote DataStore API или настройте серверную задание cron , которое будет обрабатывать все сущности и вычислять агрегаты. Это довольно просто, просто помните о квоте ЦП на запрос.
Правильно: чтобы правильно использовать хранилище GAE, вам необходимо выборочно денормализовать некоторые аспекты вашего модель, сохраняя «избыточные» данные, которые в БД в нормальной форме вы бы пересчитывали на лету, например агрегаты (общие и «сгруппированные по»).
Однако не добавляйте такие поля в Таблица Person
в вашем случае - это бессмысленно!