Apache服务器似乎是缓存请求

时间:2016-08-09 15:06:32

标签: apache flask python-requests

我在Apache 2.4服务器上运行Flask应用程序。该应用程序使用Requests库向同事发送的API发送请求。请求采用特定格式,并由存储在MySQL数据库中的数据构成。该站点旨在显示API对索引的反馈,用户可以通过另一个页面编辑存储在MySQL数据库中的数据(以及扩展名,请求中发送的数据)。

所以,让我们说自定义字段date设置为"2006",我会访问索引页面,发送请求,API发挥其魔力并发送返回与2006年相关的数据。如果我然后将日期更改为"2007",则新字段将保存在MySQL中,并在导航回索引时构建,发送新请求,并返回2007年的数据。

不幸的是,没有发生。

当我在编辑页面上更改细节时,他们肯定会存储到数据库中,但当我导航回索引时,请求会发送上一组数据。我认为Apache导致了这个问题,原因有两个:

  1. 当我重置服务器(service apache2 restart)时,发回的数据是“正确的”#39;数据,即使我还没有触及数据库。也就是说,索引最初请求2006数据,我将其更改为请求2007数据,它仍然请求2006数据,我重新启动服务器,刷新索引,只有然后它是否请求2007年数据自从我编辑以来应该这样做。
  2. 当我在我的本地Flask开发服务器上运行它时,在编辑条目后导航到索引页面会立即返回正确的结果 - 它从相同的数据库中提取,并且与已部署的服务器基本相同,除了它是没有在apache上运行。
  3. Apache有没有办法缓存请求或什么?我无法弄清楚为什么服务器会在重新启动之前继续发送旧请求。

    修改 这些请求本身很大且笨拙,而且回复会返回我因为隐私原因而无法提供示例的数据。

    我几乎可以肯定Apache是​​个问题,因为如前所述,Flask开发服务器在返回正确的数据集方面没有任何问题。我还写了一些通过Postman运行的请求,这些请求也按要求返回数据,因此请求结构必须正常。我可以在本地Flask应用程序和已部署的应用程序之间看到的唯一区别是Apache,并且考虑到重新启动Apache服务器'更新'在数据再次更改之前的请求,我认为它显然做了一些不愉快的事情。

1 个答案:

答案 0 :(得分:0)

Dirn是完全正确的,事实证明它根本不是Apache问题。一直是SQL Alchemy。

我想,SQL Alchemy知道不要做任何“缓存”。当它在开发服务器上请求数据但决定它在生产中是个好主意时,这真的很有意义。它没有在每次搜索时使用提交的数据,这就是重新启动Apache服务器修复它的原因,因为它还重置了连接。

我想这就是dirn的意思"你如何在你的应用程序中加载数据?"我曾经假设,因为我在开发服务器上关闭了Flask的调试,它的行为就像在部署中一样,但看起来有些东西已经滑落。