Rate limiting WebCient requests after certain number of retries?

Viewed 219

Is it possible to rate limit webclient requests for a url or any requests after a defined number of retries using resilience4j or otherwise?

Following is a sample code.

webClient.post()
         .bodyValue(...)
         .header(...)
         .uri(...)
         .retrieve()
         .bodyToMono(Void.class)
         .retryWhen(...) // every 15 mins, for 1 day
         .subscribe();

Example use is say 10000 requests in a day need to be sent to 100 different urls. There are retries for case when a url is temporary unavailable.

But if a url comes back up after few hours, it would get accumulated large number of requests which I would like to rate limit.

Effectively I don't want to rate limit the whole operation but for specific urls which are not available for a long time or rate limit requests which have been retried 'x' number of times. Is there a way to achieve this?

Not to be confused with circuit breaker requirement, it's not exactly an issue to keep retrying every few mins atleast in the context.

0 Answers
Related