0

次の問題に直面しています。Twitter API を呼び出してステータスの更新を送信する必要があり、その後、この Twitter の更新が発生したことを記録するレコードをローカル データベースに書き込む必要があります。

私の質問は、Twitter またはデータベース呼び出しのいずれかが失敗した場合、データの一貫性をどのように確保できるかということです。Twitter を更新してデータベース呼び出しが失敗した場合、Twitter 呼び出しのローカル レコードはありません。Twitter 呼び出しが失敗してもデータベース呼び出しが成功した場合、誤ったローカル レコードが作成されます。

Twitter 呼び出しが成功した場合にのみ DB を更新する、またはその逆の場合にのみ DB を更新するなどの明らかな最初のステップは理解していますが、これは問題の半分にしか対処していません。

これはよくある問題だと思いますが、関連情報を検索してみましたが、あまり運がありませんでした。

4

1 に答える 1

1

スティーブン、

どのような場合でも、SPOF (単一障害点) が発生します。それはアプリケーションになります。ただし、失敗のリスクを軽減するために、データをキューにダンプし (任意の並べ替え。Web サーバー上の /tmpfs で十分です)、使用可能になるまで DB への書き込み試行を繰り返すことができます。

Twitter API の呼び出しが失敗した場合、失敗した試行の記録を DB に置くことができます。

于 2013-02-05T14:13:39.290 に答える