implement RetryPolicy for ExponentialBackoffTimed #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR seeks to implement the changes discussed in TrueLayer/reqwest-middleware#109. Mainly: that there is not currently a way to define a
RetryPolicy
which can observe a maximum retry duration. There did existExponentialBackoffTimed
which, from what I can tell, sought to implement this, but since it did not implementRetryPolicy
there was no way to pass it and have each new request have an independent start time. I believe this also obsolesces the need forExponentialBackoffWithStart
, so I removed it.I did consider another approach:
should_retry
API, we could keep the task start time in theRetryPolicy
itself, but:should_retry
, which isn't really accurateRetryPolicy
implementation stateful, which I don't think makes sense considering only a single one is passed in.RetryPolicy
(likerequest_started
, but those are even bigger changes.Definitely open to other suggestions, though I think the code here is consistent with what was discussed in the linked ticket.
Will link the correspondingcorresponding reqwest-middleware PR.reqwest_middleware
PR as well.