1

Twisted で書かれたデーモンがあります。その範囲と機能は急速に拡大しており、現在のワークロードを適切に処理するには、ゼロから再構築する必要があります。

デーモンは、 runInteraction 内でこれを行います。

  1. 行を選択します (この場合、「useraccount」から行を取得します)
  2. いくつかの API エンドポイントを取得して処理します (そのユーザー用)
  3. API エンドポイントからデータを挿入する
  4. 元の行からデータベースレコードを「正常に更新されました」として更新します

ステップ 2 と 3 で発生するアクティビティの量は着実に増加しており、これを複数の runInteractions と追加のデータベース ロギングにリファクタリングする必要があります。

現在、これを書き直していますが、本番環境に入るまでに数日かかります。

その点に到達するまで、「COMMIT;ROLLBACK;」を手動で呼び出すのはひどいですか?トランザクションのカーソル上?

4

1 に答える 1

0

使用している正確なデータベースによって異なりますが、ひどいわけではありませんが、おそらく悪いです。COMMIT;ROLLBACK を Python メソッド呼び出しではなく SQL として発行することにより、おそらく、基礎となるデータベース ライブラリの、現在のトランザクションに関する考えを台無しにしていることになります。重要な点は、runInteractionすべてが一度に実行されるトランザクションのチャンクを提供することです。データベースが一貫性を欠いても問題なく動作している場合は、おそらく問題ありません。

于 2013-02-20T23:40:22.633 に答える