2012-08-03 66 views
2

我想在單個API調用中提高SQLAlchemy的性能,我已經提交到各地,我是否會聚合這些會話添加,並在API調用結束時進行提交?或者,如果我在整個地方都做到這一點,這有什麼關係?SQLAlchemy,我什麼時候提交?

謝謝!

回答

1

提交應該發生在想要保存所有這些記錄(對象)或沒有的相關調用的邏輯塊之後。如果一個失敗,你希望他們都失敗(回滾)。另一方面,將不相關的調用分組到一個單獨的事務中可能會導致意想不到的副作用,發生意外錯誤,並且當您真的應該保存得很好時,您不想要的東西會回滾,這不是您正在做的事情但我之前看過這個表演。

無論如何,我通常會在每個API調用結束時提交一個提交,因爲我認爲API調用是全部或者全部沒有處理,我懷疑調用者會因爲唯一鍵違規行爲在中間的某處發生。

我在SA的文檔中發現了這個頁面,處理會話解釋瞭如何佈置我的會話,事務等。 lifespan-of-a-contextual-session

相關問題