PHP code example of bvtterfly / laravel-circuit-breaker
1. Go to this page and download the library: Download bvtterfly/laravel-circuit-breaker 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/ */
bvtterfly / laravel-circuit-breaker example snippets
return [
// Here you may specify which of your cache stores you wish to use as your default store.
'store' => config('cache.default'),
// length of interval (in seconds) over which it calculates the error rate
'time_window' => 60,
// the number of errors to encounter within a given timespan before opening the circuit
'error_threshold' => 10,
// the amount of time until the circuit breaker will try to query the resource again
'error_timeout' => 300,
// the timeout for the circuit when it is in the half-open state
'half_open_timeout' => 150,
// the amount of consecutive successes for the circuit to close again
'success_threshold' => 1,
];
use Bvtterfly\LaravelCircuitBreaker\Facades\CircuitBreaker;
$circuit = CircuitBreaker::service('my-service');
// or you can override default configuration:
$circuit = CircuitBreaker::service('my-service', [
'time_window' => 120,
'success_threshold' => 3,
]);
// Check circuit status for service
if (! $circuit->isAvailable()) {
// Service isn't available
}
try {
callAPI();
$circuit->markSuccess();
} catch (\Exception $e) {
// If an error occurred, it must be recorded as failed.
$circuit->markFailed();
}