NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class BackoffPlugin

Plugin to automatically retry failed HTTP requests using a backoff strategy

  Guzzle\Common\AbstractHasDispatcher implements Guzzle\Common\HasDispatcherInterface
  Guzzle\Plugin\Backoff\BackoffPlugin implements Symfony\Component\EventDispatcher\EventSubscriberInterface

Namespace: Guzzle\Plugin\Backoff
Located at Guzzle/Plugin/Backoff/BackoffPlugin.php

## Methods summary

- `public` `__construct ( Guzzle\Plugin\Backoff\BackoffStrategyInterface $strategy = null )`
- `public static` `getExponentialBackoff ( int $maxRetries = 3, array $httpCodes = null, array $curlCodes = null )`

  Retrieve a basic truncated exponential backoff plugin that will retry HTTP errors and cURL errors

- `public static` `getAllEvents ( )`

  Get a list of all of the events emitted from the class

- `public static` `getSubscribedEvents ( )`
- `public` `onRequestSent ( Guzzle\Common\Event $event )`

  Called when a request has been sent and isn't finished processing

- `public` `onRequestPoll ( Guzzle\Common\Event $event )`

  Called when a request is polling in the curl multi object

## Methods detail

# `public`
`__construct( `Guzzle\Plugin\Backoff\BackoffStrategyInterface` $strategy = null )`

#### Parameters

$strategy
  ``Guzzle\Plugin\Backoff\BackoffStrategyInterface``
  $strategy The backoff strategy used to determine whether or not to retry and the amount of delay between retries.

# `public static `Guzzle\Plugin\Backoff\BackoffPlugin``
`getExponentialBackoff( integer $maxRetries = 3, array $httpCodes = null, array $curlCodes = null )`

Retrieve a basic truncated exponential backoff plugin that will retry HTTP errors and cURL errors

#### Parameters

$maxRetries
  `integer`
  $maxRetries Maximum number of retries
$httpCodes
  `array`
  $httpCodes HTTP response codes to retry
$curlCodes
  `array`
  $curlCodes cURL error codes to retry

#### Returns

``Guzzle\Plugin\Backoff\BackoffPlugin``
# `public static array`
`getAllEvents( )`

Get a list of all of the events emitted from the class

#### Returns

`array`

#### Overrides

`Guzzle\Common\AbstractHasDispatcher::getAllEvents`
# `public static`
`getSubscribedEvents( )`
# `public`
`onRequestSent( `Guzzle\Common\Event` $event )`

Called when a request has been sent and isn't finished processing

#### Parameters

$event
  ``Guzzle\Common\Event``
  $event

# `public`
`onRequestPoll( `Guzzle\Common\Event` $event )`

Called when a request is polling in the curl multi object

#### Parameters

$event
  ``Guzzle\Common\Event``
  $event

### Methods inherited from Guzzle\Common\AbstractHasDispatcher

`addSubscriber()`, `dispatch()`, `getEventDispatcher()`, `setEventDispatcher()`

### Magic methods summary

## Constants summary

`string` | `DELAY_PARAM` | `Guzzle\Plugin\Backoff\CurlMultiInterface::BLOCKING` | #
`string` | `RETRY_PARAM` | `'plugins.backoff.retry_count'` | #
`string` | `RETRY_EVENT` | `'plugins.backoff.retry'` | #

## Properties summary

`protected `Guzzle\Plugin\Backoff\BackoffStrategyInterface`` | $strategy | # Backoff strategy

### Properties inherited from Guzzle\Common\AbstractHasDispatcher

`$eventDispatcher`