قد تنتهي مهلة طلب Guzzle أثناء انتظار فتحة اتصال
اضبط ميزانيات الاتصالات النشطة لـ cURL multi على المعالج المشترك وميّزها عن سعة ذاكرة التخزين المؤقت الخاملة.
إذا انتهت مهلة طلب غير متزامن قبل فتح اتصال، فافحص الحدود النشطة للناقل إلى جانب مهلات الشبكة. يضع 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 | الاتصالات المحتفظ بها في ذاكرة التخزين المؤقت بعد الاستخدام |
لا تحصل عدة مواقع تستخدم الوكيل نفسه تلقائيًا على حصص اتصال وكيل منفصلة. سعة ذاكرة التخزين المؤقت الخاملة لا تفتح اتصالات مسبقًا ولا تجعلها قابلة للتبادل: يعتمد إعادة الاستخدام على المسار والوجهة والبروتوكول والمصادقة.
اجعل ميزانية مهام التطبيق وأي حصة من المزود متسقة مع ميزانيات النقل هذه. فهي تعد الاتصالات، لا الطلبات في الثانية. رفع مهلة المقبس لا يمكنه تحديد ما إذا كان الانتظار في قائمة الانتظار أو في الشبكة هو ما استهلك الوقت.