在长时间运行的进程中使用SqlAlchemy模型

时间:2018-01-15 07:37:43

标签: python python-3.x python-2.7 sqlalchemy flask-sqlalchemy

我来自PHP&主义ORM背景。

在doctrine orm中,如果我执行一个长时间运行的过程,如批处理,它需要我在处理一些实体后clear()实体管理器,以防止'内存不足'

doctrine batch processing

如果我要在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或类似的东西运行一个漫长的过程。保持运行不是问题。

0 个答案:

没有答案