我正在使用未从HTTP请求调用的进程中的Django数据库模型。该过程应该每隔几秒钟轮询一次新数据并对其进行一些处理。我有一个循环,它hibernate了几秒钟,然后从数据库中获取所有未处理的数据。
我看到的是,在第一次获取之后,该进程再也看不到任何新数据。我进行了一些测试,尽管每次我都在构建新的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文档所说的相反?以及如何防止它发生?
现在,Django 1.6已在MySQL中启用自动提交,这不再是问题。flush_transaction()
无论你的MySQL是处于REPEATABLE-READ
(默认)READ-COMMITTED
模式还是事务隔离模式,上面的示例现在都可以正常运行而无需编写代码。
在非自动提交模式下运行的早期Django
版本中发生的事情是,第一条select
语句打开了一个事务。由于MySQL的默认模式是REPEATABLE-READ
这意味着后续select
语句不会读取对数据库的任何更新-因此需要flush_transaction()
上面的代码来停止事务并开始新的事务。
仍然有你为什么要使用READ-COMMITTED
事务隔离的原因。如果要在终端1中进行事务处理,并且想要查看来自终端2的写入,则需要使用READ-COMMITTED
。
该flush_transaction()
代码现在在Django 1.6中会产生弃用警告,因此建议你将其删除。
在服务器迁移过程中,一个新的nginx配置缺少缓存控制指令。因此,我们最终得到了缓存的,这对我们的SPA非常不利,如果我们部署新代码,它将不再刷新。我们需要index.html不被缓存。 这是我们的(不好的)nginx配置,几天来一直在线: 我们修复了我们的配置: 问题 过去几天内访问过我们网页的客户端缓存了一个旧索引。html。我们如何强制他们的浏览器删除缓存的?
问题内容: 我有一个页面正在从第三方(新闻提要)加载脚本。脚本的url在加载时动态分配(根据第三方代码)。 然后从中加载的脚本创建并加载具有新闻提要中各种内容的元素,并以漂亮的格式等将元素加载到其中(传入ID“ div1287”,以便脚本知道在何处加载内容)。 唯一的问题是,它只会加载一次。我希望它每n秒重新加载一次(从而显示新内容)。 所以,我想我会尝试一下: div清除后,我得到警报,但是没有
我试图将我的项目设置为在jUnit模式下使用Spring hibernate和Spring hibernate JTA(Glassfish)的缓存(ehache)。 这里是我的junit的spring hiberrnate配置 我用@缓存注释了一些实体(我想要缓存的唯一实体) 我设置了一些查询:setCacheable(true)。 我有一个对象(名为CacheMap)带有@PostConstru
问题内容: 我注意到一些浏览器(特别是Firefox和Opera)非常热衷于使用.css和.js文件的缓存副本,即使在浏览器会话之间也是如此。当你更新这些文件之一但用户的浏览器继续使用缓存的副本时,这会导致出现问题。 问题是:强制用户浏览器在文件更改后重新加载文件的最优雅方法是什么? 理想情况下,该解决方案不会强制浏览器在每次访问页面时重新加载文件。我将发布自己的解决方案作为答案,但我很好奇是否有
问题内容: 因为我以前使用过jQuery的AjAX方法,所以我对XMLHttpRequests较新。但是,我需要在网络工作者中工作,现在我必须使用经典的XMLHttpRequest来解决性能问题。 我正在尝试从jquery 重建-property。如果应该禁用缓存,请添加以下内容: 但是,如果我想强制缓存(不是阻止),应该设置哪个标头? 问题答案: 您可以设置各种标头来鼓励缓存,但是它们(包括您使
问题内容: 是否有可能迫使浏览器刷新缓存的CSS? 这并不是每个请求都那么简单。我们有一个站点已有一段时间稳定的CSS。 现在,我们需要对CSS进行一些重大更新;但是,已缓存CSS的浏览器将在两天内不会收到新CSS,从而导致呈现问题。 有没有一种方法可以强制刷新CSS,还是最好选择特定于版本的CSS URL? 问题答案: 有几件事情需要考虑,有多种方法可以解决。首先,规格 我们要完成什么? 理想情