优雅地清理过期会话的工具
django-batch-session-cleanup的Python项目详细描述
这是一个django管理命令(如 https://docs.djangoproject.com/en/dev/howto/custom-management-commands/) 从数据库中清除过期会话的。
为什么?
django附带了一个内置的命令来处理会话清理,但是 在处理大型会话表时有问题。因为它 设计上,它可以一次阻止对会话表的写入数分钟, 可能会破坏依赖会话的站点。这个命令是 设计用于执行与内置命令相同的维护任务 不会因为长时间锁定表而破坏站点。
安装
从pypi安装发行版,例如pip install django-batch-session-cleanup。
然后,将batch_sesion_cleanup添加到Django项目中已安装的应用程序中。
就这样。现在可以运行django-admin.py并确认命令 出现了。
示例使用
批量删除不超过50000个过期会话,并睡眠 两批之间间隔2秒:
django-admin.py batch-session-cleanup --batch-size=50000 --sleep-time=2
已知问题和错误
- 该工具只在myisam mysql表上进行了彻底的测试。我不知道它不能在其他sql会话后端上工作的任何原因,但是如果在这些环境中使用它,应该小心。