Pool::recover
(PHP 8.6+, True Async 1.0)
public Pool::recover(): void
Fait passer le pool à l’état RECOVERING. Dans cet état, le pool autorise
un nombre limité de requêtes à passer pour vérifier la disponibilité du service.
Si les requêtes réussissent, le Circuit Breaker fait automatiquement passer
le pool à l’état ACTIVE. Si les requêtes continuent d’échouer,
le pool retourne à l’état INACTIVE.
Paramètres
Cette méthode ne prend aucun paramètre.
Valeur de retour
Aucune valeur n’est retournée.
Exemples
Exemple #1 Tentative de récupération
<?php
use Async\Pool;
use Async\CircuitBreakerState;
$pool = new Pool(
factory: fn() => new HttpClient('https://api.example.com'),
max: 10
);
// Pool is deactivated, try to recover
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
$pool->recover();
echo "Pool transitioned to recovery mode\n";
// Circuit Breaker will allow probe requests through
}
Exemple #2 Tentatives périodiques de récupération
<?php
use Async\Pool;
use Async\CircuitBreakerState;
spawn(function() use ($pool) {
while (!$pool->isClosed()) {
if ($pool->getState() === CircuitBreakerState::INACTIVE) {
$pool->recover();
}
suspend(delay: 10000); // check every 10 seconds
}
});
Voir aussi
- Pool::activate — Activation forcée
- Pool::deactivate — Désactivation forcée
- Pool::getState — État actuel
- Pool::setCircuitBreakerStrategy — Configurer la stratégie