Se unha solicitude asíncrona caduca antes de abrir unha conexión, revise os límites activos do transporte ademais dos tempos de espera da rede. libcurl pon as transferencias en cola cando eses límites están ocupados, e os seus orzamentos de tempo de espera continúan mentres están en cola.

Para o manexador cURL multi compartido de Guzzle 7:

use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlMultiHandler;

$multi = new CurlMultiHandler([
    'options' => [
        CURLMOPT_MAX_TOTAL_CONNECTIONS => 24,
        CURLMOPT_MAX_HOST_CONNECTIONS => 4,
    ],
]);
$client = new Client([
    'handler' => HandlerStack::create($multi),
]);

Use este cliente para o traballo asíncrono e forneza a súa opción de proxy prevista nas operacións. Os valores son orzamentos de exemplo. Para solicitudes públicas permitidas a través dun intermediario público, a lista de proxies HTTP ofrece candidatos para os URL de proxy das operacións.

OpciónOrzamento
MAX_TOTAL_CONNECTIONSConexións abertas simultaneamente baixo o manexador múltiple
MAX_HOST_CONNECTIONSConexións a un só host/porto; as conexións de proxy contan contra o punto final do proxy
MAXCONNECTSConexións retidas na caché despois do uso

Varios sitios web que usan o mesmo proxy non reciben automaticamente cotas separadas de conexións de proxy. A capacidade da caché inactiva non abre conexións de antemán nin as fai intercambiables: a reutilización depende da ruta, o destino, o protocolo e a autenticación.

Manteña o orzamento de tarefas da aplicación e calquera cota do provedor coherentes con estes orzamentos de transporte. Contan conexións, non solicitudes por segundo. Aumentar o tempo de espera do socket non pode identificar se consumiu o tempo unha cola ou unha espera de rede.

Artigos relacionados