PHP code example of ctroms / retryable
1. Go to this page and download the library: Download ctroms/retryable library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ctroms / retryable example snippets
$response = Retry::retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::errors(422)
->times(10)
->maxDelay(64000)
->base(1000)
->jitter(JitterStrategy::CONSTANT)
->backoff(BackoffStrategy::EXPONENTIAL)
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::errors(422)
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::errors('Something exception message we should retry on.')
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::errors('5**')
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::errors([422,'5**', 'Something exception message we should retry on.'])
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::backoff(BackoffStrategy::CONSTANT)
->retry(function () {
$this->client->request('GET', $url, $params);
});
$response = Retry::backoff(BackoffStrategy::LINEAR)
->retry(function () {
$this->client->request('GET', $url, $params);
});
$response = Retry::backoff(BackoffStrategy::EXPONENTIAL)
->retry(function () {
$this->client->request('GET', $url, $params);
});
$response = Retry::times(10)
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::maxDelay(6000)
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::base(2000)
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::jitter(JitterStrategy::CONSTANT)
->retry(function () {
$this->client->request('GET', $url, $params);
});
$response = Retry::jitter(JitterStrategy::EQUAL)
->retry(function () {
$this->client->request('GET', $url, $params);
});
$response = Retry::jitter(JitterStrategy::FULL)
->retry(function () {
$this->client->request('GET', $url, $params);
});
$response = Retry::backoff(JitterStrategy::EXPONENTIAL)
->jitter(JitterStrategy::CONSTANT)
->base(1000)
->times(10)
->maxRetries(64000)
->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::errors([422, '5**'])
->usingStrategy(function ($exception, $retryable) {
if ($exception->getCode() == 422) {
sleep(2);
}
if ($exception->getCode() >= 500) {
sleep(4);
}
if ($retryable->getRetryAttempts > 5) {
sleep(6);
}
})->retry(function () {
return $this->client->request('GET', $url, $params);
});
$response = Retry::usingDecider(function ($exception, $retryable) {
if ($exception->getCode() == 422) {
return true;
}
if ($retryable->getRetryAttempts() > 5) {
return false;
}
return false;
})->backoff(BackoffStrategy::CONSTANT)
->retry(function () {
return $this->client->request('GET', $url, $params);
})