簡體   English   中英

彈性4j重試改造

[英]resilience4j Retry retrofit

有沒有辦法以與 circuitBreacker 類似的方式添加重試配置?

val circuitBreakerConfig = CircuitBreakerConfig.custom()
        .slidingWindowType(CircuitBreakerConfig.SlidingWindowType.COUNT_BASED)
        .failureRateThreshold(10.0F)
        .build()

    val circuitBreaker = CircuitBreaker.of("name", circuitBreakerConfig)
 
    val retrofit = Retrofit.Builder()
        .baseUrl(baseUrl)
        .addCallAdapterFactory(
            CircuitBreakerCallAdapter.of(circuitBreaker) {
                it.code() == 500
            }
        ).addConverterFactory(GsonConverterFactory.create())
        .client(httpClient)
        .build()

我想使用的重試配置是這樣的:

val retryConfig = RetryConfig.custom<Any>()
        .maxAttempts(3)
        .waitDuration(Duration.ofSeconds(120))
        .retryExceptions(RuntimeException::class.java)
        .build()

是的你可以

private Retrofit buildRetrofitWithRetry(
        final OkHttpClient okHttpClient, final String baseUrl) {
    return new Retrofit.Builder()
            .client(okHttpClient)
            .addCallAdapterFactory(RetryCallAdapter.of(retry))
            .baseUrl(baseUrl)
            .addConverterFactory(JacksonConverterFactory.create())
            .build();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM