2013-08-21 77 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

相關問題