Списки в Google App Engine - PullRequest
       0

Списки в Google App Engine

1 голос
/ 13 сентября 2011

В одном из моих приложений App Engine мне нужно скомпилировать список ключей для всех сущностей вида и поместить их в список. Раньше я просто выполнял запрос по типу, но он не масштабируется вообще, и я сталкиваюсь с кучей ошибок. Я решил использовать затененный список ключей для решения этой проблемы, добавляя и удаляя ключи при обновлении набора данных, но я столкнулся с несколькими проблемами, чтобы заставить его работать.

  • Возможны ли закрытые списки в движке приложения?
  • Есть ли лучший способ удалить объекты из списка, чем поиск по каждому фрагменту?
  • Есть ли лучший способ получить все виды ключей?

1 Ответ

0 голосов
/ 13 сентября 2011

То, что вам не хватает памяти, говорит о том, что вы либо не запрашиваете только ключи, либо что у вас много подобных объектов. В любом случае, у вас, вероятно, слишком много информации, чтобы показать ее сразу, поэтому я предполагаю, что вы будете выполнять какую-то форму подкачки.

Это идеальный вариант использования курсоров. Выполните запрос, прочитайте количество ключей на странице (или всю сущность), отобразите его в HTML и запросите курсор для курсора. Сохраните курсор. Когда пользователь откроет страницу, повторите запрос и скажите, чтобы он начинался с сохраненного курсора. Курсоры не зависят от индекса, поэтому удаление любых сущностей, которые вы уже получили из запроса, не испортит ситуацию. И если пользователь теряет интерес после одной страницы, вы не платите столько же, сколько читали бы весь список ключей.

http://code.google.com/appengine/docs/java/datastore/queries.html#Query_Cursors

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...