2013-08-21 79 views
0

我有我的Python脚本无限循环,看起来就像这样:SqlAlchemy session.add()会导致内存不足?

while True: 
    obj = DatabaseObject(
     row_name_1 = 'name_1', 
     row_name_2 = 'name_2' 
    ) 
    session.add(obj) 
    try: 
     session.commit() 
    except: 
     session.rollback() 

我的脚本需要不断插入行到一个数据库,这一切工作正常,我遇到的问题是我的脚本是被Linux杀死,因为我的内存不足,那么这个SqlAlchemy方法是否会导致我的脚本被杀呢?

+0

您是否认为您的脚本正在引发异常并再次无限次地返回某种无效连接状态?压缩像这样的例外不是一个好主意。 – zzzeek

回答

1

如果您不需要obj为未来的参考,然后

session.expunge(obj) 
del obj 

按理应该工作。

session.expunge_all()也可以使用。

+0

谢谢,我正在考虑删除创建的对象。 – PepperoniPizza

+0

当您丢失对该对象的引用时,会自动从该会话中引用该对象。不需要清除()。 – zzzeek

相关问题