مكتبة CURL لا تصلح للعمل الشاق

السلام عليكم ورحمة الله وبركاته

  • في تجربة لي مع مكتبة CURL للعمل المتزامن لجلب محتوى من عدة مصادر في آن واحد حوالي 50 طلب من مواقع مختلفة في نفس التوقيت لم تستطيع المكتبة الصمود وإستهلكت كامل قوة الخادم مما أدى إلى شلل تام في الخادم وتوقفه عن الإستجابة، مما دعاني لإستخدام حلول أخرى غيرها فإعتمدت على جلب المحتوى مباشراً عبر دوال اللغة كـ file_get_contents وكانت النتائج أكثر من رائعة ولم تتخطي نسبة إستهلاك قدرة الخادم نسبة 10% في حين أدى نفس العدد من الطلبات عبر مكتبة CURL إلى شّل الخادم تماماً، حالياً تخطى عدد الطلبات 200 طلب والتطبيق يعمل بأداء جيد.

مواصفات الخادم:

Intel® Core i7-920 Quad-Core processor
48 GB DDR3 RAM
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

شخصياً لا أستخدم cURL استخدم مكتبة خاصة بي للتعامل معي http تسهل علي كثير من الامور , استخدمتها عشرات المرات في سحب محتويات او نشر محتوي , نسخة غير منقحة ,

لازال هناك الكثير من العمل عليها ,

لجلب محتوي

$http = new http();
$http->get();
  • ما الذي دعاك لعدم إستخدام cURL ؟

  • عمل جيد، سأجربها في القادم بإذن الله

هل كنت تقوم بأرشفة مواقع كاملة أم ماذا؟

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

لو كانت الطلبات داخل السيرفر بمعنى استعمل مكتبة cURL للتصل بملف داخل السيرفر على مجلد آخر هل سيسقط الخادم حتماً؟! لأني أعاني من مشكلة البدائل المتوفرة، أبرمج أداة لتعمل على الخلفية cli و تشغيلها.

  • نعم نفس الأمر حتى لملفات على نفس الخادم ولكن رُبما المُشكلة من مكتبة php التي تتعامل مع cURL فلم استخدمها بمفردها بل عبر php والوظائف المتوازية pthreads في php

للتصل بملف داخل السيرفر على مجلد آخر

لما لا تستخدم الدوال الداخلية للوصول لملفات الخادم؟ أم أنك تريد معالجة طالبات الإرسال كـ GET و POST عبرها

نعم، عبر الطلبات بوست و جات.

  • استخدام مكتبة guzzlephp لطلبات HTTP

أو استخدم المكتبة المقدمة من @ahmadmarafa