Javaで、Spring フレームワークの@Retryableを使用して、リトライ処理を行おうとしています。
@Retryableはオプションで最大試行回数や、リトライ間隔を設定できますが、
それらは定数でなければなりません。
この、定数である最大試行回数やリトライ間隔を環境変数から取得したいのですが、
@Valueを使っても、定数に代入できませんでした。
(そもそも変数を定数に代入、という表現がおかしい気がしますが)
この場合、どう処理を書くのがよいでしょうか?
よろしくお願いいたします。
application.yml
1retryable: 2 max-attempt: 1 3 backoff: 5000
Java
1class Retry{ 2 3 // Retryableに指定するmaxAttemptは定数でなければならない 4 //→1が代入されない 5 @Value("${retryable.$max-attempt}") 6 private final maxAttempt = 5; 7 8 // Retryableに指定するbackoffは定数でなければならない 9 //→5000が代入されない 10 @Value("${retryable.backoff}") 11 private final maxAttempt = 1000; 12 13 // これらのオプションは定数である必要 14 @Retryable(value = {Exception.class}, 15 maxAttempts = MAX_ATTEMPT, 16 backoff = @Backoff(delay = BACKOFF)) 17 public void doRetry() { 18 //処理 19 } 20}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/13 01:49
2022/04/13 02:29 編集
2022/04/13 04:14 編集