возможно ли сохранить состояние между запросами в GAE / Java - PullRequest
1 голос
/ 24 мая 2011

Я планирую внедрить приложение GAE только для собственного использования.

Приложение получит свои данные, используя службу URL Fetch, обновляя их каждые x минут (используя запланированные задачи). Тогда он будет предоставлять мне эту информацию, когда я ее запрошу.

Я только начал изучать GAE, но у меня есть главный вопрос, который я не могу прояснить. Можно ли поддерживать состояние в GAE между различными запросами без использования jdo / jpa и хранилища данных?

Поскольку я единственный пользователь, я думаю, я мог бы хранить информацию в подклассе сервлета, и поэтому я могу избежать необходимости иметь дело с Datastore ... но меня беспокоит то, что, поскольку у этого приложения будет очень мало запросов он перемещен на диск или что-то еще (пока не знаю, есть ли у него какое-то конкретное имя), он потеряет свой статус?

Меня не беспокоит необходимость перезапускать все приложение и время от времени собирать данные с нуля, это нормально.

Ответы [ 2 ]

1 голос
/ 24 мая 2011

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

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

0 голосов
/ 24 мая 2011

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

Вы также можете рассмотреть возможность использованияCache API (например, memcache).Это JSR 107, я думаю, что Google обеспечивает реализацию.Кэш распределяется между экземплярами, но он может очиститься в любое время.Но если вы довольны таким поведением, это может быть вариантом.Учитывая ваши требования, это может быть наиболее выполнимым вариантом, если вы не хотите писать свой собственный код персистентности.

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

Или вы можете сериализовать состояние для клиента и отправитьон возвращается с каждым запросом.

Самый надежный вариант - сохранение хранилища данных - код JPA тривиален.Возможно, вам следует пересмотреть?

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