37 lines
975 B
PHP
37 lines
975 B
PHP
<?php
|
|
|
|
namespace Guzzle\Plugin\Backoff;
|
|
|
|
use Guzzle\Http\Message\RequestInterface;
|
|
use Guzzle\Http\Message\Response;
|
|
use Guzzle\Http\Exception\HttpException;
|
|
|
|
/**
|
|
* Strategy that will not retry more than a certain number of times.
|
|
*/
|
|
class TruncatedBackoffStrategy extends AbstractBackoffStrategy
|
|
{
|
|
/** @var int Maximum number of retries per request */
|
|
protected $max;
|
|
|
|
/**
|
|
* @param int $maxRetries Maximum number of retries per request
|
|
* @param BackoffStrategyInterface $next The optional next strategy
|
|
*/
|
|
public function __construct($maxRetries, BackoffStrategyInterface $next = null)
|
|
{
|
|
$this->max = $maxRetries;
|
|
$this->next = $next;
|
|
}
|
|
|
|
public function makesDecision()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
|
|
{
|
|
return $retries < $this->max ? null : false;
|
|
}
|
|
}
|