如何定期配置SQLAlchemy session.flush()

时间:2017-12-05 16:32:41

标签: python session sqlalchemy flush

有没有办法在创建会话对象时,我可以将其配置为定期执行flush()?

我需要此功能的原因是因为在会话范围内,它在内存中运行非短后台作业。我希望程序使用flush()定期更新DB的作业进度,以便我的客户端可以从DB查询进度。

目前,我的解决方案是使用另一个定期执行session.flush()的线程。

谢谢!

1 个答案:

答案 0 :(得分:0)

您无需在代码中反复拨打session.flush()。默认情况下,SqlAlchmey autoflush设置为True。这意味着任何更新,删除,插入操作都已添加到提交的transeaction中。因此,对DB的任何查询总是获取最新数据,因为即使是激活了选择查询,也应首先提交未提交的更改。

In [8]: session.autoflush
Out[8]: True

In [9]: session.autocommit
Out[9]: False