python – 在django Web应用程序中实现’上次见过’功能的最佳方法是什么?

我有一个正在运行的django / apache2 memcached应​​用程序(ubuntu),并希望跟踪登录的在线用户.

追踪这个的最佳方法是什么?

每次登录用户加载页面时,我宁愿不写入数据库;但还有其他选择吗?

最佳答案
一种方法可能是:

您创建了一个在process_response上执行以下操作的中间件:

>检查名为“在线”的cookie,但仅限用户进行身份验证
>如果没有饼干,

>设置一个名为’online’的cookie,其值为’1′
>将cookie的生命周期设置为10分钟
>使用当前日期时间更新此用户的auth.User的“last_login”字段

现在,您已在auth.User表中拥有所有当前登录的用户. last_login比datetime.now() – interval(15分钟)更新的所有用户可能被视为“在线”.

将每隔10分钟为每个登录用户编写数据库.根据需要调整值“10”和“15”.

这里的优点是数据库写入很少(根据您的两个数字设置10/15).对于速度优化,请确保last_login已编入索引,因此包含Count的此字段的过滤器非常快.

希望这可以帮助.

转载注明原文:python – 在django Web应用程序中实现’上次见过’功能的最佳方法是什么? - 代码日志