public function testCreatesConnectionFilter()
 {
     $f = RetrySubscriber::createConnectFilter();
     $e = $this->createEvent(null, null, new ConnectException('foo', new Request('GET', 'http://foo.com')), [], 'GuzzleHttp\\Event\\ErrorEvent');
     $this->assertTrue($f(1, $e));
     $e = $this->createEvent(null, null, null);
     $this->assertFalse($f(0, $e));
 }
 /** @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()])])));
 }
 /**
  * @return callable[]
  */
 private function getRetryFilters()
 {
     return array(RetrySubscriber::createStatusFilter(), RetrySubscriber::createConnectFilter(), $this->getMediawikiApiErrorRetrySubscriber());
 }
 public static function _apply_retries($value, array &$args)
 {
     if ($value) {
         $retry = new RetrySubscriber(self::_wrapDebugLogger($args, ['max' => $value, 'delay' => 'GuzzleHttp\\Subscriber\\Retry\\RetrySubscriber::exponentialDelay', 'filter' => RetrySubscriber::createChainFilter([new ThrottlingFilter($args['error_parser']), RetrySubscriber::createStatusFilter(), RetrySubscriber::createConnectFilter()])]));
         $args['client']->getEmitter()->attach($retry);
     }
 }
Exemple #5
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()])])));
         }
     };
 }