[英]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.