x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
إمتي استخدم async في الـ API وليه هي مهمة جدًا لتطوير الأداء ؟
تخيل إنك شيف في مطبخ، وعندك بوتاجاز فيه أربع عيون. بدل ما تستخدم العيون كلها في نفس الوقت، بتقرر تشتغل على عين واحدة بس، وتسيب الباقي فاضي.
يعني لو عندك أربع طلبات في نفس الوقت، هتعمل الطلب الأول، وتستنى لحد ما يخلص، وبعدين تبدأ في الطلب اللي بعده، وهكذا.
بالشكل ده
الزباين هيستنو وقت طويل عشان طلباتهم تخلص.
والمطبخ هيبقى بطيء وغير مستغل كويس.
لكن لو فكرت تستخدم كل العيون المتاحة على البوتاجاز، تقدر تطبخ أكتر من طلب في نفس الوقت. تشغل الطلب الأول على عين، ولحد ما يستوي، تبدأ في الطلب التاني على عين تانية، وهكذا.
ده بالظبط اللي بيعمله الـ async في الـ APIs.
لما بتستقبل طلب (request) فيه عمليات تقيلة زي:
️ استعلام قاعدة بيانات.
️ استدعاء API خارجي.
️ قراءة أو كتابة ملفات.
لو مش مستخدم async، الـThread (العين اللي بتشتغل) هيقف مستني العملية تخلص، ومش هيقدر يخدم طلبات تانية في الوقت ده.
لكن مع الـ async، السيرفر يقدر:
يبدأ العملية المطلوبة.
يستغل الموارد (العين التانية والتالتة) لخدمة طلبات تانية.
ولما العملية تخلص، يبعت النتيجة للـRequest الأساسي.
النتيجة؟
استغلال أفضل لكل موارد السيرفر.
قدرة أكبر على التعامل مع عدد كبير من الطلبات في وقت واحد.
تقليل وقت انتظار المستخدمين بشكل كبير.
️ لكن ملحوظة مهمة :
الـ async أكتر حاجة بتفرق لما بيبقى عندك ضغط كبير. لو عندك 100 طلب في الدقيقة، ممكن ما تحسش بالفرق. لكن لما يبقى عندك 100,000 طلب في الدقيقة، الفرق أكيد هيبان.
يبقي مهم جداً استخدم async/await في أي عملية بطيئة زي الاتصال بقاعدة البيانات أو استدعاء APIs خارجية.
قولنا رأيك إيه أكتر موقف حسيت فيه بأهمية استخدام async؟ شاركنا تجربتك!
تخيل إنك شيف في مطبخ، وعندك بوتاجاز فيه أربع عيون. بدل ما تستخدم العيون كلها في نفس الوقت، بتقرر تشتغل على عين واحدة بس، وتسيب الباقي فاضي.
يعني لو عندك أربع طلبات في نفس الوقت، هتعمل الطلب الأول، وتستنى لحد ما يخلص، وبعدين تبدأ في الطلب اللي بعده، وهكذا.
بالشكل ده
الزباين هيستنو وقت طويل عشان طلباتهم تخلص.
والمطبخ هيبقى بطيء وغير مستغل كويس.
لكن لو فكرت تستخدم كل العيون المتاحة على البوتاجاز، تقدر تطبخ أكتر من طلب في نفس الوقت. تشغل الطلب الأول على عين، ولحد ما يستوي، تبدأ في الطلب التاني على عين تانية، وهكذا.
ده بالظبط اللي بيعمله الـ async في الـ APIs.
لما بتستقبل طلب (request) فيه عمليات تقيلة زي:
️ استعلام قاعدة بيانات.
️ استدعاء API خارجي.
️ قراءة أو كتابة ملفات.
لو مش مستخدم async، الـThread (العين اللي بتشتغل) هيقف مستني العملية تخلص، ومش هيقدر يخدم طلبات تانية في الوقت ده.
لكن مع الـ async، السيرفر يقدر:
يبدأ العملية المطلوبة.
يستغل الموارد (العين التانية والتالتة) لخدمة طلبات تانية.
ولما العملية تخلص، يبعت النتيجة للـRequest الأساسي.
النتيجة؟
استغلال أفضل لكل موارد السيرفر.
قدرة أكبر على التعامل مع عدد كبير من الطلبات في وقت واحد.
تقليل وقت انتظار المستخدمين بشكل كبير.
️ لكن ملحوظة مهمة :
الـ async أكتر حاجة بتفرق لما بيبقى عندك ضغط كبير. لو عندك 100 طلب في الدقيقة، ممكن ما تحسش بالفرق. لكن لما يبقى عندك 100,000 طلب في الدقيقة، الفرق أكيد هيبان.
يبقي مهم جداً استخدم async/await في أي عملية بطيئة زي الاتصال بقاعدة البيانات أو استدعاء APIs خارجية.
قولنا رأيك إيه أكتر موقف حسيت فيه بأهمية استخدام async؟ شاركنا تجربتك!