はじめに
エキサイト株式会社の髙野です。
今回はFlutterでretryというライブラリを使用したのでこのretryの使用方法をご紹介します。
環境
Flutter: 3.7.0
retry: 3.1.0
使用方法
final r = RetryOptions(maxAttempts: 8); final response = await r.retry( () => http.get('https://example.com').timeout(Duration(seconds: 5)), retryIf: (e) => e is SocketException || e is TimeoutException, ); print(response.body);
リンク先に載っているサンプルです。基本的にはAPIリクエストなどで使用するかと思います。
RetryOptions
には
リトライ回数(maxAttempts)
リトライの間に挟む時間(delayFactor)
リトライの最大時間(maxDelay)
リトライ時間のランダム遅延率(randomizationFactor) 以上があり、これらを設定することができます。
Clientを呼び出すところで使用するケースが多いかと思いますのでその場合は retryIf
でキャッチしたい独自Exceptionなどを作成したりしてthrowするようにしましょう。
結果
実際にRetry処理にこのライブラリを使用しなかった場合、再起処理を書いたりtry, catchを使用して複雑になってしまうかと思います。それを考慮するだけでなくコードを簡略に書くことでできました。
今後も弊事業部でも使用を続けていこうかと思います。
最後に
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。募集にはありませんが、長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
カジュアル面談はこちらになります! meety.net
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com