为了账号安全,请及时绑定邮箱和手机立即绑定

如何强制Django忽略所有缓存并重新加载数据?

如何强制Django忽略所有缓存并重新加载数据?

蝴蝶刀刀 2019-11-11 15:39:04
我正在使用未从HTTP请求调用的进程中的Django数据库模型。该过程应该每隔几秒钟轮询一次新数据并对其进行一些处理。我有一个循环,它休眠了几秒钟,然后从数据库中获取所有未处理的数据。我看到的是,在第一次获取之后,该进程再也看不到任何新数据。我进行了一些测试,尽管每次都在构建新的QuerySet,但看起来Django正在缓存结果。为了验证这一点,我从Python shell做到了这一点:>>> MyModel.objects.count()885# (Here I added some more data from another process.)>>> MyModel.objects.count()885>>> MyModel.objects.update()0>>> MyModel.objects.count()1025如您所见,添加新数据不会更改结果计数。但是,调用管理器的update()方法似乎可以解决此问题。我找不到关于该update()方法的任何文档,也不知道它可能还会做其他什么坏事。我的问题是,为什么我会看到这种缓存行为,这与Django文档所说的相反?以及如何防止它发生?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 1574 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信