在服务器重启时清除Django webapp的所有会话

时间:2018-09-17 11:50:09

标签: python django linux session nginx

我在以下情况下面临问题,我需要在django应用程序上清除所有已应用条件的会话。

  1. 不能使用cron
  2. Webapp的javascript每分钟请求服务器api进行健康检查,无论服务器是否处于活动状态
  3. 服务器状态为off时,webapp会自动注销并清除当前用户的会话。
  4. 问题是我想清除所有用户会话
  5. 可能会出现这样的情况,例如只有一个用户登录,其他会话处于活动状态,但未在Web浏览器上显示(这意味着他们最近关闭了该标签页)
  6. 其他情况是只有一个会话,但它处于空闲状态(关闭的标签)

现在我该如何取消所有会话

我想到的两件事是

  1. 读取最后一个PID并将其存储在db中,每当任何用户点击url时,它都会交叉检查PID,并在出现PID不匹配时清除所有会话(不确定PID是否会重新启动) )
  2. 服务器重新启动事件应被监听并终止所有会话(不确定如何实现SIGHUP类事件)

项目架构:

  • Linux
  • Python2.7(Django)
  • Nginx

请提出其他建议。

0 个答案:

没有答案