示例#1
0
 /** @internal */
 public static function _applyRetryConfig($value, array &$args)
 {
     if (!$value) {
         return;
     }
     $args['client']->getEmitter()->attach(new RetrySubscriber(ClientResolver::_wrapDebugLogger($args, ['max' => $value, 'delay' => function ($retries) {
         return $retries ? 50 * (int) pow(2, $retries - 1) / 1000 : 0;
     }, 'filter' => RetrySubscriber::createChainFilter([new ThrottlingFilter($args['error_parser']), new Crc32Filter($args['error_parser']), RetrySubscriber::createStatusFilter(), RetrySubscriber::createConnectFilter()])])));
 }
示例#2
0
 private static function createRetry()
 {
     return function ($value, array &$args) {
         if ($value) {
             $args['client']->getEmitter()->attach(new RetrySubscriber(ClientResolver::_wrapDebugLogger($args, ['max' => $value, 'delay' => ['GuzzleHttp\\Subscriber\\Retry\\RetrySubscriber', 'exponentialDelay'], 'filter' => RetrySubscriber::createChainFilter([new S3TimeoutFilter(), new ThrottlingFilter($args['error_parser']), RetrySubscriber::createStatusFilter(), RetrySubscriber::createConnectFilter()])])));
         }
     };
 }