2009-05-07 11 views
0

情報の更新中にネットワーク接続が切断されたとします。ネットワーク障害のコードを処理して復帰するにはどうすればいいですか?

このような状況を処理してコードが最後に実行された場所から再開するために、自分のコードを書き込むべきですか?

考えられるアプローチの1つは、例外をキャッチすることです。再度ロジックをやり直してください。

一方(NetworkProblem){

NetworkProblem = FALSE; 試み{

//ステップ1 - DBから情報を読み取り//ステップ2 - クラスに格納するオブジェクト //ステップ3 - 情報 を更新//ステップ4 - 別のウェブサーバ に接続//ステップ5 - 更新情報

} catch(NetworkgoneException){ NetworkProblem = true;
//もう一度接続しようとします。これはもう一度、どれくらい時間がかかるかわかりません。原則として }

}

答えて

2

あなたのアプローチは大丈夫そうです。検討するいくつかの点:

  • 無期限に再試行したくないです。いくつかの最大再試行回数を持ってから、中止してください。
  • ボーナスポイントの場合、再試行する価値のあるエラーと、そうでないもの(たとえば、正の否定的なDNSレスポンス)を区別します。
  • あなたのコミュニケーションで達成しようとしていることを考えてください。一部のデータが通過し、一部のデータが通過しない場合はどうなりますか?重複したアクションを引き起こさないようにするには、何らかのトランザクションコンセプトが必要ですか?
+1

ビジーループは避けてください。 – iny

関連する問題