googleapis / googleapis/google-api-dotnet-client
BackOffHandler to honor retryAfter value in case of rateLimitExceeded
- Dominant language
- C#
- Stars
- 1.5k
- Forks
- 558
- Avg merge
- 16h 34m
- Merged PRs (30d)
- 17
Description
We are using BackoffHandler `https://github.com/googleapis/google-api-dotnet-client/blob/55e00d18f4024a44f7007a3dbfaf6fcba4ed67f5/Src/Support/Google.Apis.Core/Http/BackOffHandler.cs#L31` to retry the errors like ratelimitExceeded / userRateLimitExceeded.
But by default, it computes time to wait using exponential backoff logic. Google API sometimes gives the retryAfter value in case of 429 http status codes.
_Ex. The service gmail has thrown an exception. HttpStatusCode is 429. User-rate limit exceeded. Retry after **2024-01-10T23:55:00.392Z**_
Is it possible to honor this Retryafter value in backOffHandler ?
Else we need to have multiple UnsuccessfulResponse handlers -
1. Default BackoffHandler for 429 or other codes without retryAfter
2. RetryAfterHandler - custom implementation to honor retry value to wait.
Please confirm if this enhancement can be possible from library side.
Contributor guide
Assessment
This issue has not been assessed yet.