Exception
11 months ago
Configuration.php
11 months ago
ConfigurationInterface.php
11 months ago
ConfigurationProvider.php
11 months ago
QuotaManager.php
11 months ago
RateLimiter.php
11 months ago
RetryHelperTrait.php
11 months ago
RetryHelperTrait.php
57 lines
| 1 | <?php |
| 2 | namespace Aws\Retry; |
| 3 | |
| 4 | use Aws\Exception\AwsException; |
| 5 | use Aws\ResultInterface; |
| 6 | |
| 7 | trait RetryHelperTrait |
| 8 | { |
| 9 | private function addRetryHeader($request, $retries, $delayBy) |
| 10 | { |
| 11 | return $request->withHeader('aws-sdk-retry', "{$retries}/{$delayBy}"); |
| 12 | } |
| 13 | |
| 14 | |
| 15 | private function updateStats($retries, $delay, array &$stats) |
| 16 | { |
| 17 | if (!isset($stats['total_retry_delay'])) { |
| 18 | $stats['total_retry_delay'] = 0; |
| 19 | } |
| 20 | |
| 21 | $stats['total_retry_delay'] += $delay; |
| 22 | $stats['retries_attempted'] = $retries; |
| 23 | } |
| 24 | |
| 25 | private function updateHttpStats($value, array &$stats) |
| 26 | { |
| 27 | if (empty($stats['http'])) { |
| 28 | $stats['http'] = []; |
| 29 | } |
| 30 | |
| 31 | if ($value instanceof AwsException) { |
| 32 | $resultStats = $value->getTransferInfo(); |
| 33 | $stats['http'] []= $resultStats; |
| 34 | } elseif ($value instanceof ResultInterface) { |
| 35 | $resultStats = isset($value['@metadata']['transferStats']['http'][0]) |
| 36 | ? $value['@metadata']['transferStats']['http'][0] |
| 37 | : []; |
| 38 | $stats['http'] []= $resultStats; |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | private function bindStatsToReturn($return, array $stats) |
| 43 | { |
| 44 | if ($return instanceof ResultInterface) { |
| 45 | if (!isset($return['@metadata'])) { |
| 46 | $return['@metadata'] = []; |
| 47 | } |
| 48 | |
| 49 | $return['@metadata']['transferStats'] = $stats; |
| 50 | } elseif ($return instanceof AwsException) { |
| 51 | $return->setTransferInfo($stats); |
| 52 | } |
| 53 | |
| 54 | return $return; |
| 55 | } |
| 56 | } |
| 57 |