gpt4 book ai didi

django - Django session : sometimes session information is erased 的棘手问题

转载 作者:行者123 更新时间:2023-12-04 11:40:30 24 4
gpt4 key购买 nike

我的应用程序中的 django session 有一个奇怪的错误:有时(每天约 10 次,大约 20000 次)用户的 session 信息被删除。我通过日志文件跟踪它:在页面 A 有用户 session 的信息,在他提交表单之后,在下一页他的 session 是空的。我尝试了两种类型的存储:memcached+db 和 db only,这个问题是针对它们的。我试图重现这些场景,但一切都按预期进行,正如我所说,这种情况很少发生。我还检查了不同用户是否存在此问题,并且对于他们来说每次都不会重现。我没有任何想法如何捕捉根本原因,我不知道这里还有什么作为描述发布。如果有人有任何想法,请告诉我。如果这很重要,我正在使用 django 1.2 + FastCGI 运行我的应用程序。
谢谢!

UPD:我检查并看到在两个连续请求期间使用的 session key 没有改变,第一个请求有一个实际的 session 状态,第二个 session 变量与空相关。

最佳答案

作为调试这个问题的一种方法,我将标准的 Django session 中间件(或您当前使用的任何东西)子类化:
django.contrib.sessions.middleware.SessionMiddleware
并包装 process_request和(可能更重要)process_response在一些额外的日志记录中。然后在 MIDDLEWARE_CLASSES 中安装您的子类 session 中间件,而不是股票 Django 之一。

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

这些都不能解决您的问题,但它可能会帮助您确定发生了什么。

关于django - Django session : sometimes session information is erased 的棘手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com