إذا انتهت مهلة طلب غير متزامن قبل فتح اتصال، فافحص الحدود النشطة للناقل إلى جانب مهلات الشبكة. يضع 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الاتصالات المفتوحة في الوقت نفسه تحت المعالج المتعدد
MAX_HOST_CONNECTIONSالاتصالات بمضيف/منفذ واحد؛ تُحتسب اتصالات الوكيل على نقطة نهاية الوكيل
MAXCONNECTSالاتصالات المحتفظ بها في ذاكرة التخزين المؤقت بعد الاستخدام

لا تحصل عدة مواقع تستخدم الوكيل نفسه تلقائيًا على حصص اتصال وكيل منفصلة. سعة ذاكرة التخزين المؤقت الخاملة لا تفتح اتصالات مسبقًا ولا تجعلها قابلة للتبادل: يعتمد إعادة الاستخدام على المسار والوجهة والبروتوكول والمصادقة.

اجعل ميزانية مهام التطبيق وأي حصة من المزود متسقة مع ميزانيات النقل هذه. فهي تعد الاتصالات، لا الطلبات في الثانية. رفع مهلة المقبس لا يمكنه تحديد ما إذا كان الانتظار في قائمة الانتظار أو في الشبكة هو ما استهلك الوقت.

مقالات ذات صلة