gpt4 book ai didi

python - 在 Django Web 应用程序中实现 'last seen' 函数的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:47:55 24 4
gpt4 key购买 nike

我有一个正在运行的 django/apache2 + memcached 应用程序 (ubuntu),我想跟踪在线的登录用户。

跟踪它的最佳方法是什么?

我不希望每次登录用户加载页面时都写入数据库;但还有哪些其他选择?

最佳答案

一种方法可能是:

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

  • 检查名为“在线”的 cookie,但前提是用户已通过身份验证
  • 如果 cookie 不存在,
    • 设置名为“online”且值为“1”的 cookie
    • 将 cookie 的生命周期设置为 10 分钟
    • 用当前日期时间更新此用户的 auth.User 的“last_login”字段

现在您的 auth.User 表中已包含所有当前登录的用户。 last_login 晚于 datetime.now()-interval(15minutes) 的所有用户都可能被视为“在线”。

数据库将大约每 10 分钟为每个登录用户写入一次。根据您的需要调整值“10”和“15”。

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

希望这对您有所帮助。

关于python - 在 Django Web 应用程序中实现 'last seen' 函数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3027973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com