1

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

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

  1. 选择一行(在这种情况下,从“useraccount”中获取一行)
  2. 抓取并处理多个 API 端点(针对该用户)
  3. 从 API 端点插入数据
  4. 将原始行的数据库记录更新为“成功更新”

第 2 步和第 3 步中发生的活动量稳步增长到需要将其重构为多个 runInteractions 和一些额外的数据库日志记录的地方。

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

在我到达那一点之前,手动调用“COMMIT;ROLLBACK;”是不是很糟糕?在交易的光标上?

4

1 回答 1

0

这取决于您使用的确切数据库,但是是的,它可能很糟糕,虽然并不可怕。通过发出 COMMIT;ROLLBACK 作为 SQL 而不是 Python 方法调用,您可能会弄乱底层数据库库对您正在进行的事务的想法。但大多数情况下,请记住,您的服务器可能会在执行此工作的中途崩溃;关键runInteraction在于它为您提供了一个事务性的工作块,这些工作将一次性执行。如果您不在乎您的数据库最终可能会不一致,并且它正在工作,那么它可能没问题。

于 2013-02-20T23:40:22.633 回答