堅牢で再利用可能な再利用ロジック
操作の断続的な障害を処理するには、信頼できる再試行メカニズムが必要です。 繰り返しの手動レトリループの代わりに、一般的な再試行関数は、コードの保守性と回復力を改善するための優れたソリューションを提供します。
普遍的な再試行関数 このアプローチは、あらゆる方法の再試行ロジックを簡素化する汎用性のある再試行関数
(またはより記述的な名前)を導入します。 この関数は、再試行パラメーターの仕様を許可します:試行回数、再試行間の間隔、および実行する方法。TryThreeTimes()
retry関数の実装
コア再試行関数は、次のように実装できます
メソッドは、指定された再試行を繰り返し、それぞれの間を一時停止します。 遭遇した例外が収集されます。 すべての試みの後、障害が発生した場合、
がスローされ、すべての例外に関する詳細を提供します。<code class="language-csharp">public static class RetryHelper { public static void Execute( Action action, TimeSpan retryInterval, int maxAttemptCount = 3) { // ... implementation details ... } public static T Execute<T>( Func<T> action, TimeSpan retryInterval, int maxAttemptCount = 3) { // ... implementation details ... } }</code>
retry関数を利用しますExecute
AggregateException
RetryHelper.Execute(() => SomeFunctionThatMightFail(), TimeSpan.FromSeconds(1));
RetryHelper.Execute(SomeFunctionThatMightFail, TimeSpan.FromSeconds(1));
int result = RetryHelper.Execute(SomeFunctionReturningInt, TimeSpan.FromSeconds(1), 4);
強化された保守性:
Retry Logicの集中化、コード組織の改善、冗長性の削減。
以上が一般的な再試行関数は、コードの保守性と回復力をどのように改善できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。