Python 的 GAE 中带有 webapp2 的陈旧会话存储

Stale session stores with webapp2 in GAE for Python

我有一个 GAE Python 应用程序,它将会话数据存储在通过 webapp2_extras.sessions.get_store(request=self.request) 获得的 SessionStore 对象中。

当我不关闭浏览器时,我已经看到会话持续了好几天,但我突然想到,作为应用程序的管理员,我无法清除服务器中陈旧的 SessionStore 对象,也就是说,当用户的数据在他或她的浏览器关闭后将永远不会被再次访问时。

这是我在 GAE 上的应用程序 运行 中的内存泄漏,还是 GAE 或 WEBAPP2 有一些识别陈旧会话并释放该内存的策略?我在 GAE/WEBAPP2 文档中找不到答案,所以如果您有 link 提供答案,我们将不胜感激。

您可以配置会话存储的过期时间 webapp2_extras.sessions.default_config:

session_max_age: Default session expiration time in seconds. Limits the duration of the contents of a cookie, even if a session cookie exists. If None, the contents lasts as long as the cookie is valid. Default is None.

现在如果你想自己处理过期, 识别过时会话的策略可能是在 cookie 或会话数据中存储时间戳,并在每次页面请求时检查它。当你想使会话过期时,调用 self.session.clear().