特にWebアプリケーションをプログラミングする際には、Djangoは時にはすべての成功またはすべての失敗のアクションセットを持つことがありますソート)。明らかに、データベースを使って作業しているときは、トランザクションを使用できます。例外の場合の "トランザクション処理"を保証するための適切なワークフローは何ですか?
しかし、いくつかの状況では、これら(オールオアナッシング)制約がデータベースコンテキストの外で必要とされている
(例えば支払いが成功であるならば、我々はなど、製品のアクティベーションコードまたは他のリスク顧客の苦情を送信する必要があります)
しかし、私はエラーを記録し、問題を手動で修正する必要があり
(時間1+続いたもの)いくつかの運命の日に、send_code()
機能は単に時間を失敗し、再び何らかの一時的なネットワークエラーに言うことができます、例えば手動でメールを送信してください。
何らかの作業キューを設定する必要があります。失敗すると、キューの最後に戻って再試行することができますか?
ロギング/キューイングシステムにも障害が発生するとどうなりますか? (私はこの時点であまりにも心配していますか?)