in sdk/src/client/Client.cc [51:70]
Client::ClientOutcome Client::AttemptRequest(const std::string & endpoint, const ServiceRequest & request, Http::Method method) const
{
for (int retry =0; ;retry++) {
auto outcome = AttemptOnceRequest(endpoint, request, method);
if (outcome.isSuccess()) {
return outcome;
}
else if (!httpClient_->isEnable()) {
return outcome;
}
else {
RetryStrategy *retryStrategy = configuration().retryStrategy.get();
if (retryStrategy == nullptr || !retryStrategy->shouldRetry(outcome.error(), retry)) {
return outcome;
}
long sleepTmeMs = retryStrategy->calcDelayTimeMs(outcome.error(), retry);
httpClient_->waitForRetry(sleepTmeMs);
}
}
}