我来自PHP&主义ORM背景。
在doctrine orm中,如果我执行一个长时间运行的过程,如批处理,它需要我在处理一些实体后clear()
实体管理器,以防止'内存不足'
如果我要在python和SqlAlchemy中执行类似下面的操作:
db = SqlAlchemy()
# ....
# configure db instance and other stuff
# .....
def my_callback_func(param):
my_model = MyModel(
attr1 : '...',
attr2 : '...',
)
db.session.add(my_model)
db.session.commit()
#here i'm attaching above function as a callback
#filter is a object that monitors something, and it call the callback function #when requirements are satisfied.
my_filter.watch(my_callback)
#so my script will keep running
input()
上面的代码现在运行正常,实际上是几天。
SqlAlchemy将MyModel
对象保存到数据库后会跟踪吗?
SqlAlchemy是否有可能收集(在内存中)它保存的所有对象,并在某些时候“耗尽内存”?
BTW我知道如何使用Supervisor或类似的东西运行一个漫长的过程。保持运行不是问题。