在Django中查找不活动的会话文件
我在使用Django的会话功能,并且选择了文件系统作为存储方式。我把SESSION_EXPIRE_AT_BROWSER_CLOSE设置为True,这样一来,当我关闭浏览器时,当前的会话就会失效。但是,虽然会话失效了,之前创建的会话文件还是会留在那儿。
我想要删除所有不活跃或失效的文件。请问我该怎么找到这些文件呢?
3 个回答
1
从Django 1.5版本开始,处理这个问题的方法是使用新的“clearsessions”命令,这个命令可以通过django-admin.py和manage.py来使用。这个命令可以清除基于文件的会话,而之前的“cleanup”命令是做不到这一点的。举个例子,你可以设置一个定时任务,让它定期运行:
django-admin.py clearsessions
(确保这个定时任务可以访问DJANGO_SETTINGS_MODULE这个环境变量)
想了解更多信息,可以查看官方文档。
1
你可以考虑使用
python manage.py cleanup
来删除这些文件。
1
请注意,这个设置意味着当你关闭浏览器时,客户端的cookie会被删除。而服务器上的会话会一直保留,直到它过期。
会话信息是存储在Django网站的数据库里的。如果你想清除所有正在进行的会话,可以查看清除会话表。