私はいくつかのアイテムのコレクションといくつかの操作を持っています。この操作は、クライアントとサーバー間のリモート呼び出しの一部であり、すべての項目に対して同時に実行する必要があります。サーバ側では、各項目で繰り返し実行され、失敗するか、成功する可能性があります。私は成功したアイテムと失敗したアイテムを知る必要があります。私はこれがむしろ一般的なケースだと思うし、良い解決策がある。どのように私はそれを設計すべきですか?アイテムの収集に関するエラー処理設計の問題
0
A
答えて
1
それはあなたが設計要件としてこれに読んでいない場合は、あなたの人生を憎むだろう一度
ですべての項目で実行する必要があります。すべてまたは何もそれを処理する正しい方法です。あなたがするすべてを簡素化します。
これがオプションでない場合は、可能な限り愚かなことをしないでください。 try/catchでそれぞれの呼び出しをラップし、いくつかのレポートを与えます。誰もがレポートを消費することはできないでしょう。それは、まさに正しいことです。
編集:
手の込んだ:バッチ処理すると、レポートエラーにシンプルなロジックを記述することは結構ですが、エラーから回復するためのロジックを書くことは非常に複雑です。私はバッチ処理でシステムが本当にリカバリをうまく処理するのを見たことがありません。私は各項目が完全に独立しているいくつかのコーナーケースがあると確信しています。いずれの時点でどちらか一方が失敗しても問題はありませんが、通常はそうではありません。
一般に、バッチ処理中に発生するエラーは重要ではないと予想しています。これにより、システムはエラーを無視し、エラーの原因となったメッセージが存在しなかったかのように動作し続けることができるはずです。
これらのメッセージが処理されることが本当に重要なのなら、私は絶対にすべてを試すか、何も試してみません。
関連する問題
- 1. MSMQ並行処理設計の問題
- 2. バックボタンの処理に関する問題
- 3. C#アプリケーションのエラー処理に関する問題
- 4. 例外、エラー、戻り値の処理に関する問題
- 5. PHP Soapサーバのヘッダの収集/処理
- 6. WebSocketでのエラー処理の設計
- 7. C++ APIの設計とエラー処理
- 8. Facebookのデータ収集の倫理的な問題
- 9. 画像処理アーキテクチャの設計に関するアドバイス
- 10. 問題集計行
- 11. データベース設計/構造 - 時間の経過によるデータ収集
- 12. WindowsとLinuxのテキストファイルの処理に関する問題
- 13. mysqlの統計を収集する
- 14. SIGSEGVのsig処理に関する問題
- 15. デリゲートとイベントの処理に関する問題
- 16. PHPログインスクリプトのログインとファイル処理に関する問題
- 17. CakePHP要素のエラー処理に関する質問
- 18. erbテンプレートの処理に関するrcov形式の情報をどのように収集しますか?
- 19. 集計ポームに問題がある
- 20. LostFocusの処理の問題
- 21. 電子メールマーケティング、統計収集
- 22. プラグインの設計に関する質問
- 23. C#の統計収集ツールですか?
- 24. 設定エラーの処理 - global.asax?
- 25. マルチスレッド処理の問題
- 26. 例外処理の問題
- 27. 問題の処理入力
- 28. Pythonフォーム処理の問題
- 29. Powershellスレッド処理の問題
- 30. アンドロイド処理バーの問題
私の操作は、いくつかの理由で異なる理由で失敗することがあります。この場合、どのようなエラーを返す必要がありますか? 'All or nothing'原則を守れば、最初に失敗したアイテムのエラーを返すはずですか? – ks1322
私はシステムに依存していると思いますが、それは私の予想です。あなたの最初の1つのエラーでは、バッチ内のすべてのアクションもロールバックされると予想されます。 –