Google App Engine, как отслеживать разрушение httpsession
Кто-нибудь знает, как отслеживать httpsession уничтожить с помощью GAE? Я обнаружил, что HttpSessionListener не работает должным образом в GAE, и метод sessionDestroyed никогда не вызывает.
Чтобы быть более точным, у меня есть информация, которую я храню в базе данных, когда пользователь входит в приложение, но если какой-то пользователь неактивен в течение некоторого времени, мне нужно удалить эту информацию из базы данных, это будет легко, если метод sessionDestroyed будет вызываться, когда такой Событие происходит, так как на данный момент я выполнил задание cron, которое выполняется каждую минуту, задание запрашивает в памяти все данные такого рода, которые неактивны, и удаляет их. Но это очень неэффективный способ сделать это, я могу оптимизировать его с помощью кеша. Но, может быть, это какой-то другой элегантный способ.
Любые мысли тепло приветствуются.
1 ответ
Как вы заметили, HttpSessionListener не работает в App Engine, поэтому это невозможно. Отчасти это связано с тем, что приложения App Engine запускают несколько экземпляров на нескольких компьютерах, поэтому нет единой виртуальной машины, чтобы вызывать это. Выполнение обычного сценария очистки, как вы описываете, является лучшим способом сделать это, хотя на самом деле нет причин запускать его каждую минуту - пару раз в день должно быть вполне достаточно!