加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:43:15 所属栏目:Python 来源:网络整理
导读:我在我的应用程序中有一个奇怪的 django会话错误:有时(大约10次,每天约20000)用户的会话信息被删除.我通过日志文件跟踪它:在页面A,有用户会话的信息,在提交表单后,在下一页他的会话为空.我尝试了两种类型的存储:memcached db和db,这个问题适用于它们.我尝
我在我的应用程序中有一个奇怪的 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()是否已实际提交了更改.可能问题在于会话状态序列化,并且它在您尝试存储的特定键或值上失败.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读