在扭曲的runInteraction中手动COMMIT一个事务是否很糟糕?

时间:2013-02-20 19:48:03

标签: twisted

我有一个用Twisted编写的守护进程。它的范围和功能迅速增长,需要从头开始重建,以正确处理当前的工作量。

守护进程在runInteraction中执行此操作:

  1. 选择一行(在这种情况下,从“useraccount”中抓取一行)
  2. 抓取并处理多个API端点(针对该用户)
  3. 从API端点插入数据
  4. 将原始行的db记录更新为“已成功更新”
  5. 步骤2中发生的活动量& 3稳步增长到需要重构为多个runInteractions和一些额外的数据库日志记录的地方。

    我目前正在重写此内容,但需要几天才能投入生产。

    直到我达到这一点,手动调用“COMMIT; ROLLBACK”是否可怕?在事务的光标上?

1 个答案:

答案 0 :(得分:0)

这取决于你使用的确切数据库,但是,它可能很糟糕,虽然并不可怕。通过发出一个COMMIT; ROLLBACK作为SQL而不是Python方法调用,你可能会弄乱你的底层数据库库对你所处的事务的想法。但是,请记住,你的服务器可能会在完成这项工作的中途崩溃; runInteraction的全部意义在于它为您提供了一笔交易大量的工作,这些工作将一次全部执行。如果你不在乎你的数据库可能最终不一致,并且它正在运行,那么它可能就好了。