GWT + постоянство объектов + сохранение данных в памяти - PullRequest
1 голос
/ 30 ноября 2009

В настоящее время я занимаюсь разработкой и внедрением веб-системы агрегирования RSS, целью которой является использование и оценка рекомендательных алгоритмов.

Для этой системы потребуется относительно интерактивный веб-интерфейс (отсюда мой интерес к использованию GWT) и некоторая форма сохранения данных для хранения подробностей RSS-канала и сложных профилей пользователей, которые будут использоваться для предоставления рекомендаций (я посмотрел на Gilead для этого).

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

Насколько я понимаю, мое GWT-приложение будет развернуто на веб-сервере и будет иметь в своем составе исполняемые классы Java. Тем не менее, это означает, что любые созданные объекты будут существовать только в течение срока использования этих классов.

Существуют ли какие-либо методы для хранения этих данных в памяти, которые могут быть эффективно доступны и изменены классами Java в рамках войны GWT, а также выполнять записи в базу данных периодически и посредством явных вызовов.

1 Ответ

1 голос
/ 30 ноября 2009

Абсолютно. GWT следует тем же правилам сборки мусора, что и Java (не технически, но достаточно для наших целей). Это означает, что вы можете создавать объекты записей взаимодействия, и хранить их в памяти так же просто, как добавить их в список / любую другую структуру данных, которую вы хотите.

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

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

...