Una solicitud de Guzzle puede agotar el tiempo mientras espera un espacio de conexión
Configure los presupuestos de conexiones activas de cURL multi en el controlador compartido y distíngalos de la capacidad de la caché inactiva.
Si una solicitud asíncrona expira antes de abrir una conexión, revise los límites activos del transporte además de los tiempos de espera de la red. libcurl pone las transferencias en cola cuando esos límites están ocupados, y sus presupuestos de tiempo de espera siguen corriendo mientras están en cola.
Para el controlador 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 el trabajo asíncrono y proporcione su opción de proxy prevista en las operaciones. Los valores son presupuestos de ejemplo. Para solicitudes públicas permitidas a través de un intermediario público, la lista de proxies HTTP ofrece candidatos para las URL de proxy de las operaciones.
| Opción | Presupuesto |
|---|---|
| MAX_TOTAL_CONNECTIONS | Conexiones abiertas simultáneamente bajo el controlador múltiple |
| MAX_HOST_CONNECTIONS | Conexiones a un solo host/puerto; las conexiones de proxy cuentan contra el extremo del proxy |
| MAXCONNECTS | Conexiones retenidas en la caché después de su uso |
Varios sitios web que usan el mismo proxy no reciben automáticamente cupos separados de conexiones de proxy. La capacidad de la caché inactiva no abre conexiones de antemano ni las hace intercambiables: la reutilización depende de la ruta, el destino, el protocolo y la autenticación.
Mantenga el presupuesto de tareas de la aplicación y cualquier cupo del proveedor coherentes con estos presupuestos de transporte. Cuentan conexiones, no solicitudes por segundo. Aumentar el tiempo de espera del socket no permite saber si consumió el tiempo una cola o una espera de red.