3

有人知道如何使用 GAE 跟踪 httpsession 销毁吗?我发现 HttpSessionListener 在 GAE 中无法正常工作,并且 sessionDestroyed 方法从不调用。

更具体地说,当用户登录应用程序时,我有一个信息存储在数据库中,但是如果某些用户在一段时间内处于非活动状态,我需要从数据库中删除此信息,如果在这种情况下调用 sessionDestroyed 方法,这将很容易事件发生了,至于现在我做了每分钟运行的 cron 作业,该作业查询内存中所有此类句柄的数据,哪些数据处于非活动状态并将其删除。但这是非常低效的方法,我可以使用缓存对其进行优化。但也许还有其他一些优雅的方式。

任何想法都受到热烈欢迎。

4

1 回答 1

3

正如您所观察到的,HttpSessionListener 在 App Engine 上不起作用,因此这是不可能的。这部分是因为 App Engine 应用程序在多台机器上运行多个实例,因此没有单个 VM 可以调用它。按照您的描述运行定期清理脚本是最好的方法,尽管实际上没有理由每分钟都运行它 - 一天几次就足够了!

于 2011-01-27T03:33:19.640 回答