Pythonic/Djangonic处理用户超时的方法(如果需要,可以是几分钟)

2024-05-29 04:10:14 发布

您现在位置:Python中文网/ 问答频道 /正文

最接近我的例子是djangoajax聊天应用程序。会议室需要保留一份活动用户的列表。除了显示聊天室中的用户列表外,给定的聊天室可能有最大数量的活动用户;如果没有聊天室,则需要阻止新用户进入。在

目前,我的聊天客户端页面通过ajax每秒调用一个投票视图。poll视图返回文件室的文本。我认为poll还可以执行某种类型的ping操作——将用户添加到Room对象上的活动用户M2M字段(到目前为止,我已经完成了所有这些工作)。下一步我需要的是在某种超时之后从活跃的用户列表中删除用户。在

我想有两种方法可以做到这一点,我想知道对于一个需要精确到秒(或10/15秒)的应用程序来说,哪种方法更有效:

  • 使用cookies/sessions/middleware a lathis thread(但是在我看来,这个方法对于即时信息不起作用
  • 另一个模型,比如一个显式的Users“through”表,其中有一个datetime字段,表示在创建时更新的时间,每次ping都会更新,并编写一些函数来清理旧的

我能想到的就这些。我只是想弄清楚每一个房间的每一个用户每秒访问mySQL是否是一个好主意,并想知道这一秒是否真的是该任务的最佳选择。谢谢!在


Tags: 方法用户视图应用程序客户端列表数量ajax
1条回答
网友
1楼 · 发布于 2024-05-29 04:10:14

我将使用sessions并将last ping datetime存储为会话参数。不要担心数据库命中,如果在某个时刻您会感觉到太多了,只需将会话存储切换到cache。在

使您的应用程序能够健壮地进行缓存刷新。在

我的一个朋友曾经在一个相当标准的虚拟私人服务器上主持一个相对流行的基于django的社交网络游戏,过了一段时间他才被迫切换到基于缓存的会话。在

相关问题 更多 >

    热门问题