django会话的棘手问题:有时会话信息被删除

前端之家收集整理的这篇文章主要介绍了django会话的棘手问题:有时会话信息被删除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中有一个奇怪的 django会话错误:有时(大约10次,每天约20000)用户的会话信息被删除.我通过日志文件跟踪它:在页面A,有用户会话的信息,在提交表单后,在下一页他的会话为空.我尝试了两种类型的存储:memcached db和db,这个问题适用于它们.我尝试重现这些场景,但是正如我所说,所有这些都按预期工作,这种情况非常罕见.我还检查了这个问题是否存在于不同的用户,并且对于它们来说每次都不会重现.我没有任何想法如何找到根本原因,我不知道在这里发布什么作为描述.如果有人有任何想法,请告诉我.如果它很重要,我正在使用django 1.2 FastCGI运行我的应用程序.
谢谢!

UPD:我检查并看到在两个连续请求期间,使用的会话密钥没有改变,首先请求有一个实际的会话状态,而在第二个会话变量与空相关.

解决方法

作为调试此问题的一种方法,我将继承标准Django会话中间件(或您当前使用的任何内容):

django.contrib.sessions.middleware.SessionMiddleware

并在一些额外的日志记录中包装process_request和(可能更重要的)process_response.然后在MIDDLEWARE_CLASSES中安装子类会话中间件,而不是Django库存.

您还可以通过尝试读取它来验证session.save()是否已实际提交了更改.可能问题在于会话状态序列化,并且它在您尝试存储的特定键或值上失败.

这些都无法解决您的问题,但它可以帮助您确定正在发生的事情.

原文链接:https://www.f2er.com/python/242008.html

猜你在找的Python相关文章