Backoff retry plugin

The Guzzle\Plugin\Backoff\BackoffPlugin automatically retries failed HTTP requests using custom backoff strategies:

use Guzzle\Http\Client;
use Guzzle\Plugin\Backoff\BackoffPlugin;

$client = new Client('');
// Use a static factory method to get a backoff plugin using the exponential backoff strategy
$backoffPlugin = BackoffPlugin::getExponentialBackoff();

// Add the backoff plugin to the client object

The BackoffPlugin’s constructor accepts a Guzzle\Plugin\Backoff\BackoffStrategyInterface object that is used to determine when a retry should be issued and how long to delay between retries. The above code example shows how to attach a BackoffPlugin to a client that is pre-configured to retry failed 500 and 503 responses using truncated exponential backoff (emulating the behavior of Guzzle 2’s ExponentialBackoffPlugin).