在Django中查找不活动的会话文件

1 投票
3 回答
983 浏览
提问于 2025-04-16 07:49

我在使用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网站的数据库里的。如果你想清除所有正在进行的会话,可以查看清除会话表

撰写回答