Avatar ·

كيفية تنفيذ تعدد المهام (multithreading) في تطبيقات PHP؟

مرحباً بالجميع! أنا أكتب بلغة PHP منذ حوالي عام، وواجهت مشكلة لا أستطيع حلها. أحتاج إلى معالجة مجموعة كبيرة من البيانات (حوالي 100,000 سجل من قاعدة البيانات)، لكل سجل يجب تنفيذ طلب HTTP إلى API خارجي وحفظ النتيجة. في الحلقة (loop) يعمل هذا، لكنه بطيء جداً — الطلب الواحد يستغرق حوالي 0.5-1 ثانية، وقد تستغرق المعالجة بأكملها عدة ساعات. حاولت استخدام `curl_multi_exec` للطلبات المتوازية، لكن هذا ليس ما أحتاجه تماماً، لأنني أحتاج إلى تنفيذ ليس فقط طلبات HTTP، بل أيضاً أعمال أخرى (مثل تحليل HTML، الكتابة إلى الملفات، معالجة الصور). إليك مثال على الكود الحالي الخاص بي: ```php $data = getLargeArrayFromDB(); // 100k سجل foreach ($data as $item) { $result = callExternalAPI($item['id']); // طلب HTTP بطيء processResult($result); // القليل من العمل الإضافي saveToFile($result); } ``` سمعت أنه في لغات أخرى (Java, Python) يوجد تعدد مهام (multithreading) طبيعي، أما في PHP