اگر یک درخواست ناهمگام پیش از بازکردن اتصال منقضی شود، محدودیت‌های فعال انتقال‌دهنده را در کنار مهلت‌های شبکه بررسی کنید. libcurl زمانی که این محدودیت‌ها اشغال باشند انتقال‌ها را در صف می‌گذارد و بودجه مهلت آن‌ها در حین صف ماندن ادامه می‌یابد.

برای هندلر مشترک cURL multi در 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),
]);

از این کلاینت برای کار ناهمگام استفاده کنید و گزینه پراکسی موردنظر آن را روی عملیات‌ها تنظیم کنید. مقادیر بودجه‌های نمونه‌اند. برای درخواست‌های عمومی که از طریق یک واسط عمومی مجاز است، فهرست پراکسی HTTP نامزدهایی برای URLهای پراکسی عملیات‌ها فراهم می‌کند.

گزینهبودجه
MAX_TOTAL_CONNECTIONSاتصالات باز همزمان زیر هندلر multi
MAX_HOST_CONNECTIONSاتصالات به یک میزبان/درگاه؛ اتصالات پراکسی علیه نقطه پایانی پراکسی شمرده می‌شوند
MAXCONNECTSاتصالاتی که پس از استفاده در کش نگه داشته می‌شوند

چند وب‌سایت که از یک پراکسی استفاده می‌کنند به‌طور خودکار سهمیه‌های جداگانه اتصال پراکسی دریافت نمی‌کنند. ظرفیت کش بیکار نه از پیش اتصال باز می‌کند و نه آن‌ها را قابل تبادل می‌سازد: استفاده مجدد به مسیر، مقصد، پروتکل و احراز هویت بستگی دارد.

بودجه وظایف برنامه و هر سهمیه ارائه‌دهنده را با این بودجه‌های انتقال سازگار نگه دارید. آن‌ها اتصال‌ها را می‌شمارند، نه درخواست در ثانیه. افزایش مهلت سوکت نمی‌تواند مشخص کند که صف یا انتظار شبکه زمان را مصرف کرده است.

مقالات مرتبط