質問お願いします。
現在、業務でシステムを作っていてリトライ処理を実装することになりました。
内容としては、カードデータを取得し、['resultCode']が200であれば$successCardsに格納、200以外であれば$getDataの取得をやり直し、3回試みてもダメだったらfalseを返すという内容です($getDataはモックデータで、これからリクエスト処理を書きます)。
処理の途中までは記載できているのですが、肝心のリトライ処理の実装がイマイチ分からず困っているので分かる方いましたらご教授お願いしたいです🙇♂️
PHP
1 $successCards = []; 2 3 do { 4 $retryCount = 0; 5 $maxRetryCount = 3; 6 7 $getData = [ 8 "Result" => [ 9 "resultCode" => 200, 10 ] 11 ]; 12 13 // ステータスコードが200であれば配列に格納 14 if ($getData['Result']['resultCode'] === '200') { 15 array_push($successCards, $getData); 16 }; 17 18 // 200以外であればリトライ処理 19 if ($getData['Result']['resultCode'] !== '200') { 20 ++$retryCount; 21 }; 22 23 } while ($maxRetryCount >= $retryCount);
なんか、あまり意味のあるリトライ処理に見えませんね。通常はウェイトを入れるなりがありますが、なぜリトライ処理を必要とするのかの事情も第三者からは分かりませんし、なんとも言えないところです。まずはarray_pushしたあとにループを抜ける処理(break)を追加だけして、テストやチーム内でレビューしてみたらどうでしょうか。リトライの仕様が曖昧なら、チーム内で議論すべきでしょう。第三者には何が正しいか分からないので答えにくいし、teratail向けの質問じゃないかぁという気がします。
確かに、第三者からすると分からない部分がありますよね。。
一旦breakを追加してプルリク投げて反応を見てみます。
ありがとうございました!
回答1件
あなたの回答
tips
プレビュー