1

我已经调试了半天了......有人有想法吗?

我写了一个 python 脚本来监控活动会话,发现这个:

sessions = Session.objects.filter(expire_date__gte=datetime.now())
for session in sessions:
    data = session.get_decoded()
    id = data.get('_auth_user_id', None)
    ses = session.session_key
    if id:
        name = User.objects.get(id=id)

给出了很好的清单...好的。但是——如果用户注销或登录,上面的代码不会反映更改。它只是不断重复原始的、过时的列表。

有缓存问题吗?不要想——禁用memcached,没有变化。尝试了基于文件和内存缓存的会话存储——奇怪的结果:上面的代码似乎读取了基于 db 的会话存储。

所以,我怀疑 1.4.3 的初始化是不正确的——因为似乎有各种初始化环境的方法。我相信1.4。不需要将环境变量 DJANGO_SETTINGS_MODULE 设置为应用程序。

接下来,如果这不能解决..必须使用基于文件的会话存储并轮询目录..这似乎是实时的并且正在运行:)

4

1 回答 1

0

您的问题是由事务隔离引起的。默认情况下,与数据库的每个连接都在事务中运行。通常,这相当于一个视图,事务中间件负责打开和关闭事务。在独立脚本中,您需要自己管理它

于 2013-03-25T13:11:07.020 回答