Я использую новый экспериментальный taskqueue для Java appengine, и я пытаюсь создать задачи что совокупная статистика в моем хранилище данных. Я пытаюсь считать количество УНИКАЛЬНЫХ значений во всем entitities (определенного типа) в моем хранилище данных. Более конкретно скажите, что объект типа X имеет поле A. Я хочу считать КОЛИЧЕСТВО уникальных значений в моем хранилище данных.
Мой текущий подход должен создать задачу, которая запрашивает для первых 10 объектов типа X, создавая хеш-таблицу для хранения уникальных значений в, затем передавая эту хеш-таблицу следующей задаче как полезная нагрузка. Эта следующая задача будет считать следующие 10 объектов и т. д. и т. п., пока я не прошел все объекты. Во время выполнения последней задачи я буду считать количество ключей в моей хеш-таблице (это было передано от задачи до задачи все время) найти общее количество уникальных значений A.
Это работает на небольшое количество объектов в моем хранилище данных. Но я волнуюсь, что эта хеш-таблица станет слишком большой, после того как у меня есть много уникальных значений. Каков максимальный допустимый размер для полезной нагрузки appengine задачи?????
Можно ли предложить какие-либо альтернативные подходы?
Спасибо.
Согласно документам максимальный размер объекта задачи 100K.
. "Можете ли вы предложить какой-либо альтернативный подход? "...128]Создайте сущность для каждого уникального значения, построив ключ на основе значения и используя Model.get_or_insert
. Затем Query.count
вверх по сущностям в партиях по 1000 (или сколько их можно посчитать до истечения времени запроса - более 10), используя обычные трюки пейджинга.
Или используйте код, аналогичный приведенному в документации для get_or_insert
, чтобы держать подсчет по ходу - транзакции App Engine могут быть запущены более одного раза, поэтому memcached count инкрементированный в транзакции будет ненадежным. Однако, в этом может быть какой-то трюк, или вы можете сохранить счет в хранилище данных, при условии, что вы не делаете ничего слишком неприятного с родителями сущностей.