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); } }
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()])]))); } }; }