From b1e65c8e0e3cfe926b550059071aab504b6e1dba Mon Sep 17 00:00:00 2001 From: Stefan Damjanovic Date: Sat, 27 Jan 2024 13:41:40 +0100 Subject: [PATCH] Improve transition from open to half open --- src/StateHandlers/OpenStateHandler.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/StateHandlers/OpenStateHandler.php b/src/StateHandlers/OpenStateHandler.php index f99bfe0..920c13d 100644 --- a/src/StateHandlers/OpenStateHandler.php +++ b/src/StateHandlers/OpenStateHandler.php @@ -28,4 +28,24 @@ public function beforeCall(\Closure $action, ...$args) throw CircuitOpenException::make($this->breaker->getName()); } + + /** + * @return void + */ + public function onSucess() + { + $this->breaker->getStorage()->incrementSuccess(); + } + + /** + * @param \Exception $exception + * @return void + * @throws CircuitOpenException + */ + public function onFailure(\Exception $exception) + { + $this->breaker->openCircuit(); + + throw CircuitOpenException::make($this->breaker->getName()); + } }