تجميع الاتصالات في دورة الحياة
أعيدوا استخدام عملاء DB وHTTP عبر الطلبات.
تجميع الاتصالات في دورة الحياة درس مجاني في MCP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في MCP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة MCP Academy 4 دروس في المجموع.
تكلفة الاتصال بالوقت
إنشاء اتصال جديد بقاعدة البيانات أو HTTP مع كل استدعاء أمر بطيء. تضيف عملية المصافحة زمن انتقال يتراكم بسرعة عند زيادة الحمل. 🐢
إعادة الاستخدام عبر مجمّع
يحتفظ مجمّع الاتصالات بمجموعة من الاتصالات النشطة الجاهزة، فيعير اتصالًا لكل طلب ويستعيده عند انتهاء العمل.
إنشاء المجمّع عند بدء التشغيل
تُعدّ وصلة lifespan المكان المثالي لذلك: أنشئوا المجمّع مرة واحدة عند بدء تشغيل الخادم، قبل تشغيل أي أداة.
@asynccontextmanager
async def lifespan(server):
pool = await create_pool(DSN)
yield {"pool": pool}إتاحته كحالة مشتركة
كل ما تقومون بعمل yield له من وصلة lifespan يصبح سياقًا مشتركًا، ولذلك يصل كل معالج إلى المجمّع نفسه من دون إعادة إنشائه.
الوصول إليه عبر السياق
داخل الأداة، احصلوا على المجمّع من سياق الطلب بدلًا من فتح اتصال خاص بكم في كل مرة.
pool = ctx.request_context.lifespan_context["pool"]استعاروا الاتصال واستخدموه وأعيدوه
احصلوا على اتصال من المجمّع، ونفّذوا الاستعلام، ودعوه يعود تلقائيًا. تتولى كتلة with إخراج الاتصال وإعادته.
async with pool.acquire() as conn:
rows = await conn.fetch(sql)تحديد حجم المجمّع
حدّدوا الحجم الأقصى حتى لا يفتح المجمّع اتصالات أكثر مما تستطيع قاعدة البيانات تحمّله، حتى عند تدفق الاستدعاءات.
pool = await create_pool(DSN, max_size=10)مشاركة عميل HTTP واحد أيضًا
تنطبق الفكرة نفسها على HTTP: أنشئوا عميل httpx واحدًا في وصلة lifespan وأعيدوا استخدامه، لتظل الاتصالات دافئة ومجمّعة.
client = httpx.AsyncClient()
yield {"http": client}المجمّعات آمنة مع الخيوط
صُمّم المجمّع غير المتزامن الجيد للتعامل مع التزامن، فيسلّم الاتصالات بأمان إلى طلبات كثيرة تعمل في الوقت نفسه.
انتبهوا إلى التسريبات
أعيدوا دائمًا ما تستعيرونه. فالاتصال الذي تنسون إعادته هو تسرّب يستنزف المجمّع تدريجيًا حتى تتعطل الاستدعاءات.
إغلاقه عند إيقاف التشغيل
بعد yield الخاص بوصلة lifespan، نفّذوا close للمجمّع حتى تُغلق الاتصالات بسلاسة عند توقف الخادم.
yield {"pool": pool}
await pool.close()تحقق سريع
أين تنشئون مجمّع الاتصالات؟
مراجعة: تجميع الاتصالات
جمعتم الاتصالات في وصلة lifespan: أنشأتموها مرة واحدة، وشاركتموها عبر السياق، واستعرتم اتصالًا لكل استدعاء، وأغلقتموها عند إيقاف التشغيل. ننتقل الآن إلى التخزين المؤقت وتحديد المعدل. 🎯
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «تجميع الاتصالات في دورة الحياة» مجاني؟
نعم — نص درس «تجميع الاتصالات في دورة الحياة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة MCP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة MCP Academy 4 دروس في المجموع.
ماذا ستتعلم في «تجميع الاتصالات في دورة الحياة»؟
أعيدوا استخدام عملاء DB وHTTP عبر الطلبات. تتمرن على MCP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ MCP Academy؟
لا تُشترط خبرة سابقة. MCP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تجميع الاتصالات في دورة الحياة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس MCP Academy هذا؟
نعم. كل درس في MCP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إتاحة استعلامات SQL بأمان
- تغليف REST API في صورة أدوات
- تجميع الاتصالات في دورة الحياة
- التخزين المؤقت وتحديد معدل خدمات المنبع