Pool::recover
(PHP 8.6+, True Async 1.0)
php
public Pool::recover(): voidFait 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
<?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
<?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