$next
$next : \Guzzle\Plugin\Backoff\AbstractBackoffStrategy
Will retry the request using the same amount of delay for each retry.
Warning: If no decision making strategies precede this strategy in the the chain, then all requests will be retried
$next : \Guzzle\Plugin\Backoff\AbstractBackoffStrategy
setNext(\Guzzle\Plugin\Backoff\AbstractBackoffStrategy $next)
\Guzzle\Plugin\Backoff\AbstractBackoffStrategy | $next | Next strategy in the chain |
getNext() : \Guzzle\Plugin\Backoff\AbstractBackoffStrategy|null
Get the next backoff strategy in the chain
getBackoffPeriod(integer $retries, \Guzzle\Http\Message\RequestInterface $request, \Guzzle\Http\Message\Response $response = null, \Guzzle\Http\Exception\HttpException $e = null) : boolean|integer
Get the amount of time to delay in seconds before retrying a request
integer | $retries | Number of retries of the request |
\Guzzle\Http\Message\RequestInterface | $request | Request that was sent |
\Guzzle\Http\Message\Response | $response | Response that was received. Note that there may not be a response |
\Guzzle\Http\Exception\HttpException | $e | Exception that was encountered if any |
Returns false to not retry or the number of seconds to delay between retries
getDelay(integer $retries, \Guzzle\Http\Message\RequestInterface $request, \Guzzle\Http\Message\Response $response = null, \Guzzle\Http\Exception\HttpException $e = null) : boolean|integer|null
Implement the concrete strategy
integer | $retries | Number of retries of the request |
\Guzzle\Http\Message\RequestInterface | $request | Request that was sent |
\Guzzle\Http\Message\Response | $response | Response that was received. Note that there may not be a response |
\Guzzle\Http\Exception\HttpException | $e | Exception that was encountered if any |
Returns false to not retry or the number of seconds to delay between retries. Return true or null to defer to the next strategy if available, and if not, return 0.
<?php
namespace Guzzle\Plugin\Backoff;
use Guzzle\Http\Message\RequestInterface;
use Guzzle\Http\Message\Response;
use Guzzle\Http\Exception\HttpException;
/**
* Will retry the request using the same amount of delay for each retry.
*
* Warning: If no decision making strategies precede this strategy in the the chain, then all requests will be retried
*/
class ConstantBackoffStrategy extends AbstractBackoffStrategy
{
/** @var int Amount of time for each delay */
protected $delay;
/** @param int $delay Amount of time to delay between each additional backoff */
public function __construct($delay)
{
$this->delay = $delay;
}
public function makesDecision()
{
return false;
}
protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null)
{
return $this->delay;
}
}