diff --git a/CHANGELOG.md b/CHANGELOG.md index 86a47d8f..26716dcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## Unreleased +- Sleep before a retry rather than after each try. ## v6.0.0 - 2025-10-28 - ⚠️ [Breaking] Remove `ApiVersion::LATEST` constant to prevent semver violations. The `apiVersion` parameter is now required in `Context::initialize()`. Developers must explicitly specify API versions. See the [migration guide](BREAKING_CHANGES_FOR_V6.md#removal-of-apiversionlatest-constant) for details. diff --git a/src/Clients/Http.php b/src/Clients/Http.php index 4f03ab61..e6f5c65c 100644 --- a/src/Clients/Http.php +++ b/src/Clients/Http.php @@ -213,6 +213,9 @@ protected function request( $currentTries = 0; do { $currentTries++; + if ($currentTries > 1) { + usleep((int)($retryAfter * 1000000)); + } $response = HttpResponse::fromResponse($client->sendRequest($request)); @@ -220,8 +223,6 @@ protected function request( $retryAfter = $response->hasHeader(HttpHeaders::RETRY_AFTER) ? $response->getHeaderLine(HttpHeaders::RETRY_AFTER) : Context::$RETRY_TIME_IN_SECONDS; - - usleep((int)($retryAfter * 1000000)); } else { break; }