2013-02-20 69 views
1

我有一個用Twisted寫的守護進程。它的範圍和功能已經迅速增長,並且需要從頭開始重建以正確處理當前的工作量。在扭曲的runInteraction中手動提交事務是否可怕?

守護進程做到這一點,一個runInteraction內:

  1. 選擇行(在這種情況下,從「useraccount」抓住一個行)
  2. 抓鬥及過程中的幾個API端點(該用戶)
  3. 從API端點插入數據
  4. 更新的數據庫記錄形成的原始行是「成功更新」

在步驟2 & 3中發生的活動量穩定增長,需要將其重構爲多個runInteractions和一些額外的數據庫日誌記錄。

我目前正在改寫這個,但需要幾天才能投入生產。

直到我到了那個地步,手動調用「COMMIT; ROLLBACK;」是非常可怕的。在事務的光標?

回答

0

這取決於你正在使用什麼確切的數據庫,但是,它可能是壞的,雖然不可怕。通過發出COMMIT; ROLLBACK作爲SQL而不是Python方法調用,您可能會搞亂您的底層數據庫庫關於您所處事務的想法。但大多數情況下,請記住,您的服務器可能會在執行此項工作時中途崩潰; runInteraction的全部重點在於它爲您提供了一個可以立即執行的事務性工作塊。如果你不關心你的數據庫可能最終不一致,並且它正在工作,那麼它可能沒問題。

+0

謝謝。在這個「大塊」工作中,所有事情都可以承諾 - 並且不存在潛在的不一致問題。 – 2013-02-21 05:00:39