我在以下情况下面临问题,我需要在django应用程序上清除所有已应用条件的会话。
- 不能使用cron
- Webapp的javascript每分钟请求服务器api进行健康检查,无论服务器是否处于活动状态
- 服务器状态为
off
时,webapp会自动注销并清除当前用户的会话。
- 问题是我想清除所有用户会话
- 可能会出现这样的情况,例如只有一个用户登录,其他会话处于活动状态,但未在Web浏览器上显示(这意味着他们最近关闭了该标签页)
- 其他情况是只有一个会话,但它处于空闲状态(关闭的标签)
现在我该如何取消所有会话
我想到的两件事是
- 读取最后一个
PID
并将其存储在db中,每当任何用户点击url时,它都会交叉检查PID,并在出现PID不匹配时清除所有会话(不确定PID
是否会重新启动) )
- 服务器重新启动事件应被监听并终止所有会话(不确定如何实现
SIGHUP
类事件)
项目架构:
- Linux
- Python2.7(Django)
- Nginx
请提出其他建议。