Pool::getState

(PHP 8.6+, True Async 1.0)

public Pool::getState(): CircuitBreakerState

풀의 현재 서킷 브레이커 상태를 반환합니다.

매개변수

이 메서드는 매개변수를 받지 않습니다.

반환값

CircuitBreakerState 열거형 값:

예제

예제 #1 풀 상태 확인

<?php

use Async\Pool;
use Async\CircuitBreakerState;

$pool = new Pool(
    factory: fn() => new HttpClient('https://api.example.com'),
    max: 10
);

$state = $pool->getState();

match ($state) {
    CircuitBreakerState::ACTIVE => echo "Pool is active\n",
    CircuitBreakerState::INACTIVE => echo "Service unavailable\n",
    CircuitBreakerState::RECOVERING => echo "Recovering...\n",
};

예제 #2 상태에 기반한 조건부 로직

<?php

use Async\Pool;
use Async\CircuitBreakerState;

function makeRequest(Pool $pool, string $endpoint): mixed
{
    if ($pool->getState() === CircuitBreakerState::INACTIVE) {
        // 서비스 호출 대신 캐시된 데이터 사용
        return getCachedResponse($endpoint);
    }

    $client = $pool->acquire(timeout: 3000);

    try {
        return $client->get($endpoint);
    } finally {
        $pool->release($client);
    }
}

같이 보기