كيف أنقذت Laravel queue من بطء تحليل الذكاء الاصطناعي

قمنا بتطبيق Laravel queue لتسريع تحليل الذكاء الاصطناعي، مما أدى إلى تحسين كبير في أداء منتجنا.

---

مقدمة في المشكلة

في أحد الأيام المزدحمة، بينما كنا نناقش المشكلات الحالية في Slack، طرح أحد المطورين مسألة بطء تحليل الذكاء الاصطناعي. اشتعل النقاش عندما أدركنا أن المستخدمين بدأوا يتذمرون من التأخيرات في معالجة البيانات. في تلك اللحظة، أصبح واضحًا: يجب أن يحدث تغيير ما.

السياق: لماذا هذا مهم

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

تفاصيل المشكلة

كانت المشكلة تكمن في أن الطلبات إلى محلل الذكاء الاصطناعي تستغرق وقتًا طويلاً - أحيانًا تصل إلى 10 ثوانٍ لكل سيرة ذاتية. عندما كان هناك عدة مستخدمين يعملون في النظام في نفس الوقت، كانت الحمولة تزداد، وارتفع وقت الانتظار إلى 20 ثانية. تسبب ذلك في سلسلة من الشكاوى، وكان أحد الأمثلة التي تلقيناها من عميلنا الذي لم يستطع الحصول على نتائج تحليل مرشحيه في الوقت المحدد. أدركنا أنه إذا لم تتغير الحالة، فسوف يؤدي ذلك إلى تسرب العملاء.

المحاولات الأولى للحل

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

النهج الفني: تطبيق Laravel queue

في النهاية، توصلنا إلى قرار استخدام Laravel queue. سمح لنا ذلك بتوزيع مهام معالجة السير الذاتية بين عدة عمال، مما زاد بشكل كبير من سرعة المعالجة. إليك كيف قمنا بتنفيذ ذلك:

use App\Jobs\ParseResume;

foreach ($resumes as $resume) {
    ParseResume::dispatch($resume);
}

سمح لنا هذا الحل بمعالجة الطلبات بشكل غير متزامن، مما حسّن بشكل كبير من استجابة النظام وقلل من الحمل على الخوادم.

التغييرات في المنتج

بعد تطبيق Laravel queue، تمكنا من تقليل وقت معالجة السير الذاتية إلى 3-5 ثوانٍ. بدأ المستخدمون في الحصول على النتائج تقريبًا على الفور. لم يزداد فقط رضا العملاء، بل أعدنا أيضًا الثقة في المنتج. تلقينا ردود فعل إيجابية، وتقلص عدد الشكاوى بشكل حاد. الآن، كان بإمكان المستخدمين التركيز على جوانب أخرى من العمل دون إضاعة الوقت في انتظار النتائج.

الدروس المستفادة

علمتنا هذه العملية عدة دروس مهمة:

  • المعالجة غير المتزامنة للمهام تعزز بشكل كبير من الإنتاجية.
  • ليست كل الحلول واضحة؛ أحيانًا يجب تجربة عدة نهج قبل العثور على الحل الصحيح.
  • من المهم أخذ ملاحظات المستخدمين بعين الاعتبار والاستجابة السريعة للشكاوى.
  • قد تكون تحسينات الكود غير كافية دون بنية صحيحة.
  • العمل الجماعي والنقاش المفتوح حول المشكلات يساعد في إيجاد حلول أكثر فعالية.

ماذا يعني هذا للمرشحين

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

ماذا يعني هذا للمجندين

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

الخطوات التالية

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

المواد ذات الصلة

  • Code screenshot plannedКод обработки резюме
    Скриншот кода, демонстрирующий использование Laravel queue для обработки резюме.
  • Chart plannedГрафик производительности
    График, показывающий улучшение времени обработки резюме до и после внедрения.

أيضا على Fitlane AI

المواضيع: Laravel queue, AI-парсинг, оптимизация производительности, Laravel, очереди задач, продукт Fitlane, разработка