1

beakers WSGI SessionMiddleware用来管理浏览器和应用程序之间的会话。我试图区分何时首次访问会话以针对任何进一步的请求。

从文档看来,WSGI 环境中提供了两个有用的值, ["beaker.session"].last_accessed 并且["beaker.session"]["_accessed_time"]

但是,在重复请求["beaker.session"].last_accessed上总是返回None,而时间戳值["beaker.session"]["_accessed_time"]可以看出随着每个请求而增加。

每个请求都执行一个["beaker.session"].save()-我尝试auto=True了会话中设置的各种组合,并使用了.save() / .persist(),但没有乐趣: .last_accessed总是None.

我没有使用会话来实际保存任何数据,只是为了管理session.id. (我正在使用“cookie”的会话类型)

4

1 回答 1

1

事实证明,这种行为归结为通过 apache 进行的多处理。

它是通过使用外部存储来管理首次看到会话 ID 时的跟踪,并维护我自己的“last_accessed_time”等来解决的。

于 2012-12-07T11:49:50.553 回答