Failure handling for PHP. I would add "elegant" here, but I don't lie.
Don't use it, work in progress.
Via Composer
$ composer require aguimaraes/bureaucrat
$retry = (new Retry())
->onlyOnException(\RuntimeException::class)
->atLeast(3)
->withDelay(2, TimeUnit::SECOND)
->abortOnException(\DomainException::class);
$circuitBreaker = (new CircuitBreaker())
->withFailureThreshold(3, 5)
->withSuccessThreshold(4, 5)
->withDelay(20, TimeUnit::SECOND)
->failOnException(\RuntimeException::class)
->failOnTimeOut(1, TimeUnit::MINUTE);
$result = (new Failsafe())
->with($retry)
->and($circuitBreaker)
->run(function() {
// ... your thing
});
Please see CHANGELOG for more information on what has changed recently.
$ composer test
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email alvaroguimaraes@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.