我对 SQL Alchemy 有疑问 - 我的应用程序作为一个持续工作的 Python 应用程序工作。
我有这样的功能:
def myFunction(self, param1):
s = select([statsModel.c.STA_ID, statsModel.c.STA_DATE)])\
.select_from(statsModel)
statsResult = self.connection.execute(s).fetchall()
return {'result': statsResult, 'calculation': param1}
我认为这是一个明显的例子——一个结果集是从数据库中获取的,第二个只是作为参数传递。
问题是,当我更改数据库中的数据时,此函数仍然返回数据,就像没有更改一样。当我更改输入参数中的数据时,返回的参数“计算”具有适当的值。
当我重新启动应用服务器时,情况恢复正常 - 从 MySQL 获取新数据。
我知道关于 SQLAlchemy 缓存有几个问题,例如:
但是我还能怎么称呼这种情况呢?似乎 SQLAlchemy 保留了之前获取的数据,并且在应用程序重新启动之前不会执行新查询。我怎样才能避免这种行为?