30 lines
902 B
PHP
30 lines
902 B
PHP
<?php
|
|
|
|
namespace Guzzle\Plugin\Backoff;
|
|
|
|
use Guzzle\Http\Message\RequestInterface;
|
|
use Guzzle\Http\Message\Response;
|
|
use Guzzle\Http\Exception\HttpException;
|
|
|
|
/**
|
|
* Strategy used to retry HTTP requests based on the response code.
|
|
*
|
|
* Retries 500 and 503 error by default.
|
|
*/
|
|
class HttpBackoffStrategy extends AbstractErrorCodeBackoffStrategy
|
|
{
|
|
/** @var array Default cURL errors to retry */
|
|
protected static $defaultErrorCodes = array(500, 503);
|
|
|
|
protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
|
|
{
|
|
if ($response) {
|
|
//Short circuit the rest of the checks if it was successful
|
|
if ($response->isSuccessful()) {
|
|
return false;
|
|
} else {
|
|
return isset($this->errorCodes[$response->getStatusCode()]) ? true : null;
|
|
}
|
|
}
|
|
}
|
|
}
|